Yazılımda kalite ve standartları tariflemek, ortak bir dil haline getirmek için prensipler, bu prensipleri temel alan ve çözüm üreten programlama dili bağımsız tasarım-mimari kalıpları ortaya konulmuştur.
S.O.L.I.D sınıf tasarım prensipleri ismini içinde barındırdığı 5 temel prensibin baş harflerinden almaktadır. Robert Cecil Martin tarafından dillendirilen bu prensipler şunlardır:
| SRP | The Single Responsibility Principle | Bir sınıfın değişmesi için tek bir sebebi olmalı ve tek bir amaca hizmet etmelidir. İsviçre çakısı yapmamalısınız. |
|---|---|---|
| OCP | The Open Closed Principle | Bir sınıfın var olan özelliklerini değiştirmeden yeni özellikler eklenebilmelidir. Üzerinize yeni bir elbise giymek ile, estetik ameliyatı için masaya yatmak aynı şey değildir. |
| LSP | The Liskov Substitution Principle | Türeyen sınıflar, temel sınıfların yerine kullanılabilmelidir. Nerede o eski bayramlar dedirtmemeliyiz büyüklerimize. Canlı bir ördege ihtiyac varken oyuncak bir ördeği sırf oda vıraklıyor diye kümese koymamalıyız. |
| ISP | The Interface Segregation Principle | iş yaptıracağınız metodlarınızı ortak iş gruplarına göre arayüzlere dağıtın. Bir telefonun piyasadaki tüm markalarin şarj girişlerini destekleyecek sayıda girişi olduğunu gördünüz mü.Telefon üreticilerini buna zorlamayın. |
| DIP | The Dependency Inversion Principle | Sınıflarınız soyutlama ve arayüzler üzerinden birbirlerine bağlanabilmeli ve çeşitliliğe izin vermelidir. Bizden lego parçaları yapmamız isteniyor, yap-boz parçaları değil. |
Bu prensiplere uygun yazılım geliştirdiğimiz taktirde yönetilebilir, test edilebilir kod yazmamız mümkün olabilir.





