SOLID kavramı nedir? 1

SOLID kavramı nedir?

SOLID, yazılım geliştirme süreçlerinde iyi tasarım ilkelerini ifade eden bir kısaltmadır. Bu ilkeler, yazılımın esnek, sürdürülebilir, okunabilir ve kolayca değiştirilebilir olmasını sağlar. Her harf, belirli bir tasarım prensibini temsil eder:


1. S – Single Responsibility Principle (Tek Sorumluluk İlkesi)

  • Bir sınıf yalnızca bir tek sorumluluğa sahip olmalıdır.
  • Sınıfın yalnızca bir nedenle değişmesi gerekir.
  • Örnek: Bir “Fatura” sınıfı, yalnızca fatura ile ilgili işlemleri yapmalı, PDF oluşturma veya veritabanı işlemleri gibi görevler başka sınıflara ayrılmalıdır.

2. O – Open/Closed Principle (Açık/Kapalı İlkesi)

  • Yazılım varlıkları genişletmeye açık, ancak değişikliğe kapalı olmalıdır.
  • Yeni özellikler eklemek için mevcut kodu değiştirmek yerine, yeni sınıflar veya metotlar oluşturulmalıdır.
  • Örnek: Bir ödeme sisteminde yeni bir ödeme yöntemi eklemek için mevcut kodu değiştirmek yerine, mevcut yapıya uygun yeni bir ödeme yöntemi sınıfı eklenir.

3. L – Liskov Substitution Principle (Liskov Yerine Geçme İlkesi)

  • Bir alt sınıf, türediği üst sınıfın yerine kullanılabilir olmalıdır.
  • Alt sınıf, üst sınıfın davranışlarını bozmaz.
  • Örnek: Bir “Kare” sınıfı, bir “Dikdörtgen” sınıfından türediğinde, dikdörtgenin tüm özelliklerini doğru bir şekilde sağlamalıdır.

4. I – Interface Segregation Principle (Arayüz Ayrımı İlkesi)

  • Bir sınıf, ihtiyaç duymadığı yöntemlere sahip bir arayüzü implement etmek zorunda bırakılmamalıdır.
  • Büyük arayüzler, daha küçük ve özelleşmiş arayüzlere bölünmelidir.
  • Örnek: Bir “Uçak” sınıfı hem “Karada Giden” hem de “Havada Giden” gibi geniş bir arayüzü implemente etmek yerine, ayrı ayrı ilgili arayüzleri kullanmalıdır.

5. D – Dependency Inversion Principle (Bağımlılıkların Tersine Çevrilmesi İlkesi)

  • Yüksek seviyeli modüller, düşük seviyeli modüllere bağımlı olmamalıdır. Her ikisi de soyutlamalara bağımlı olmalıdır.
  • Detaylar, soyutlamalara bağımlı olmalıdır.
  • Örnek: Bir “Sipariş İşlem” sınıfı, bir veritabanına doğrudan bağımlı olmamalı, bir “Veritabanı Bağlantı Arayüzü”ne bağımlı olmalıdır.

Bu ilkeler, yazılımın daha modüler, test edilebilir ve yeniden kullanılabilir olmasını sağlar. Özellikle Object-Oriented Programming (OOP) dillerinde sıkça uygulanır.

4o

Bir yanıt yazın