1. SOLID Prensipleri
SOLID, nesne yönelimli programlamada daha esnek, genişletilebilir ve anlaşılır kodlar yazabilmek için rehberlik eden beş prensipten oluşur:
1.1. Single Responsibility Principle (SRP) — Tek Sorumluluk Prensibi
- Tanım: Her sınıf ya da modül, yalnızca tek bir sorumluluğa sahip olmalıdır. Yani, bir değişiklik yapmanın nedeni sadece bir sebepten kaynaklanmalıdır.
- Örnek:
1.2. Open/Closed Principle (OCP) — Açık/Kapalı Prensibi
- Tanım: Yazılım bileşenleri genişlemeye açık fakat değiştirmeye kapalı olmalıdır. Yani, mevcut kod üzerinde değişiklik yapmadan yeni işlevsellik eklenebilmelidir.
- Örnek:
1.3. Liskov Substitution Principle (LSP) — Liskov Yerine Geçme Prensibi
- Tanım: Türetilmiş sınıflar, temel sınıfların yerini alabilmeli ve beklendiği şekilde çalışmalıdır. Bu sayede, kalıtım ilişkisi doğru kullanılmalıdır.
- Örnek:
- Kötü Tasarım: Türetilmiş bir sınıf, temel sınıfın sunduğu sözleşmeyi (contract) ihlal ediyor.
- İyi Tasarım: Türetilmiş sınıflar, temel sınıfın tüm davranışlarını korur ve gerektiğinde ek davranışlar ekler.
1.4. Interface Segregation Principle (ISP) — Arayüz Ayrımı Prensibi
- Tanım: Bir sınıfın kullanmadığı metotları içeren büyük arayüzler yerine, daha küçük ve spesifik arayüzler tercih edilmelidir.
- Örnek:
1.5. Dependency Inversion Principle (DIP) — Bağımlılıkların Ters Çevrilmesi Prensibi
- Tanım: Üst düzey modüller, alt düzey modüllere bağımlı olmamalıdır. Her ikisi de soyutlamalara (arayüzler veya abstract sınıflar) bağlı olmalıdır.
- Örnek:
2. DRY Prensibi (Don’t Repeat Yourself)
- Tanım: DRY prensibi, “Kendini Tekrarlama” anlamına gelir. Bir işlev veya mantık, kodda tekrar edilmemeli, merkezi bir yerde tanımlanarak gerektiğinde yeniden kullanılmalıdır.