SOLID Nedir?
- SOLID yazılım prensipleri; geliştirilen yazılımın esnek, yeniden kullanılabilir, sürdürülebilir ve anlaşılır olmasını sağlayan, kod tekrarını önleyen prensipler bütünüdür.
- Yazılımda sürdürülebilirliği desteklemek adına kullanılan prensiplerdir.
- Bir sınıf sadece bir işi yapmalı ve değişmek için sadece bir nedeni olmalıdır
- Örnek: UserService sınıfı sadece kullanıcı işlemlerinden sorumlu olmalı, e-posta gönderme gibi farklı işlevler ayrı sınıflarda olmalıdır
- Bir sınıf (nesne) yalnızca bir amaç uğruna değiştirilebilir, o da o sınıfa yüklenen sorumluluktur, yani bir sınıfın(fonksiyona da indirgenebilir) yapması gereken yalnızca bir işi olması gerekir
- Sınıflar gelişime açık, değişime kapalı olmalıdır
- Yeni özellikler eklemek için mevcut kodu değiştirmek yerine genişletebilmeliyiz
- Örnek: Yeni bir ödeme yöntemi eklerken PaymentProcessor sınıfını değiştirmek yerine, PaymentMethod interface'ini implement eden yeni bir sınıf oluşturmalıyız
- Alt sınıflar, üst sınıfların yerine kullanılabilmelidir
- Alt sınıflar üst sınıfların tüm özelliklerini koruyarak davranışlarını genişletmelidir
- Büyük arayüzler daha küçük ve spesifik arayüzlere bölünmelidir
- Sınıflar ihtiyaç duymadıkları metotları implement etmeye zorlanmamalıdır
- Örnek: Printer interface'i yerine Print, Scan, Fax gibi ayrı interface'ler kullanılmalıdır
- Üst seviye modüller alt seviye modüllere bağımlı olmamalıdır
- Soyutlamalar detaylara değil, detaylar soyutlamalara bağımlı olmalıdır
- Örnek: NotificationService sınıfı EmailSender sınıfına değil, MessageSender interface'ine bağımlı olmalıdır