SOLID , Robert C. Martin’in ( Bob Amca olarak da bilinir) ilk beş nesne yönelimli tasarım (OOD) ilkesinin kısaltmasıdır .
S — Single-responsibility principle
O — Open-closed principle
L — Liskov substitution principle
I — Interface segregation principle
D — Dependency Inversion Principle
Bu ilkeler, geliştiricilerin ölçeği büyüdükçe ve daha karmaşık hale geldiğinde bakımı ve değiştirilmesi kolay olan yazılımlar geliştirmelerini kolaylaştırmak ile ilgilidir. Bu yüzden, gereksiz kısmı keserek ve kodu rafine etme ve yeniden yapılandırma şeklinde organize ederek nesne yönelimli programlamaya yaklaşmanın bir yolu olarak bu kavramı gerçekten anlayabiliriz.
Single Responsibility Prensibi Nedir? (Tek Sorumluluk Prensibi)
Kısaca: Buradaki başlık oldukça açıklayıcıdır. Bir yazılım varlığının (sınıflar, modüller, işlevler vb.) yalnızca bir nedeni olmalıdır. Yani yapması gereken yalnızca bir işi olması gerekir. Bir class bir sorumluluk almalı yani bir class’ın isviçre çakısı gibi bir sürü görevi, özelliği olmamalıdır. Öyle bir tasarım yapmalıyız ki, her class veya metod’un tek bir sorumluluğu olmalıdır.
Open/Closed Prensibi Nedir? (Açık/Kapalı Prensibi)
Kısaca: Bir sınıfın davranışını, onu değiştirmeden genişletebilmelisiniz. Bu ilke, bakımı yapılabilen ve yeniden kullanılabilen kodun temelidir. Robert C. Martin Açık / kapalı ilkesi, bir nesnenin geliştirme için açık, ancak değişiklik için kapalı olması gerektiğini belirtir. Yazılım varlıkları (sınıflar, modüller, işlevler vb.) Geliştirme için açık, ancak mevcut özellikleri değişiklik için kapalı olmalıdır.
Liskov Substitution Prensibi Nedir? (Liskov’un Yerine Geçme Prensibi)
ÖZET: Liskov’un Yerine Geçme Prensibi, her alt sınıfın üst sınıfının yerine geçmesi durumunda, programın yine de beklendiği gibi davranacağını belirtir. Kodlarımızda herhangi bir değişiklik yapmaya gerek duymadan alt sınıfları, türedikleri(üst) sınıfların yerine kullanabilmeliyiz.
Interface Segregation Prensibi Nedir ? (Arayüz Ayrımı Prensibi)
ÖZET: Arayüz ayırma ilkesi, bir müşterinin kullanmayacağı bir arayüzün özelliklerini ve yöntemlerini uygulamaya zorlanmaması gerektiğini belirtir. Bu nedenle, birkaç büyük, genel arabirim yerine çok sayıda küçük, özel arabirim tanımlamak daha iyidir. Sorumlulukların hepsini tek bir arayüze toplamak yerine daha özelleştirilmiş birden fazla arayüz oluşturmalıyız.
Dependency Inversion Prensibi Nedir? (Bağımlılıkları Tersine Çevirme Prensibi)
ÖZET: Bağımlılığı tersine çevirme ilkesi, sınıfların diğer sınıflara bağlı olmaması gerektiğini, bunun yerine bu sınıfların uyguladığı arabirimlere bağlı olması gerektiğini belirtir. Bu, bağımlılıkların yönünü tersine çevirme etkisine sahiptir. Yazılım varlıkları (sınıflar, modüller, işlevler vb.) arası bağımlılıklar olabildiğince az olmalıdır özellikle üst seviye sınıflar alt seviye sınıflara bağımlı olmamalıdır. Üst seviye (High-Level) sınıflar alt seviye (Low-Level) sınıflara bağlı olmamalıdır, ilişki abstraction veya interface kullanarak sağlanmalıdır,
Bu şekilde SOLID Yazılım prensipleri’ni inceledik. Başka araştırmamızı istediğiniz konuları yorum yazarak bize iletebilirsiniz
Kaynaklar;
https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design