SOLID kavramının temel ilkelerini ve bunların yazılım sistemleri geliştirmeye etkisini açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
SOLID ilkeleri, esnek, genişletilebilir ve sürdürülebilir sistemler oluşturmayı sağlayan nesne yönelimli tasarımın beş temel ilkesidir:
-
Tek Sorumluluk Prensibi (SRP) — Her sınıfın yalnızca bir değişiklik nedeni olmalı, yani belirli bir görevi yerine getirmelidir.
-
Açık/Kapalı Prensibi (OCP) — Sınıflar genişletilmeye açık, ancak değişikliğe kapalı olmalıdır.
-
Liskov Yerine Koyma Prensibi (LSP) — Bir alt sınıfın nesneleri, temel sınıfın nesneleriyle değiştirildiğinde programın doğruluğu bozulmamalıdır.
-
Arayüz Ayrımı Prensibi (ISP) — Müşteriler, kullanmadıkları arayüzlere bağlı olmamalıdır. Birden fazla uzmanlaşmış arayüz olması, tek bir evrensel arayüzden daha iyidir.
-
Bağımlılıkların Tersine Çevrilmesi Prensibi (DIP) — Üst modüller, alt modüllere bağlı olmamalı; her ikisi de soyutlamalara bağlı olmalıdır.
Geliştirmeye etkileri:
- Kodun okunabilirliğini ve bakımını artırır.
- Test ve yeniden düzenlemeyi kolaylaştırır.
- Mevcut kodu değiştirmeden fonksiyonelliği kolayca genişletmeye olanak tanır.
SRP örneği:
// Kötü: sınıf hem mantık hem de çıktı ile ilgileniyor
class Report {
public string Data { get; set; }
public void Print() { /* ekran çıktısı */ }
}
// İyi: sorumlulukların ayrılması
class Report {
public string Data { get; set; }
}
class ReportPrinter {
public void Print(Report report) { /* ekran çıktısı */ }
}