Nesne Yönelimli Tasarım İlkeleri Nedir?
Nesne Yönelimli Tasarım (OOD) ilkeleri, yazılım geliştirme sürecinde kodun daha anlaşılır, esnek, sürdürülebilir ve yeniden kullanılabilir olmasını sağlamak amacıyla oluşturulmuş temel prensiplerdir. Bu ilkeler, karmaşık sistemlerin yönetimini kolaylaştırır.
Nesne Yönelimli Tasarım ilkeleri, yazılımın modülerliğini, esnekliğini ve bakımını artırmak için kullanılan bir dizi kılavuzdur ve genellikle SOLID prensipleri ile özetlenir.
Adım adım çözümlü örnekler
Tek Sorumluluk Prensibi (SRP) ne anlama gelir?
Bir sınıfın yalnızca tek bir sorumluluğu olmalı, yani yalnızca tek bir işlevi yerine getirmelidir. Bu, sınıfın neden değişebileceği için yalnızca tek bir nedeni olmasını sağlar.
Açık/Kapalı Prensibi (OCP) ne anlama gelir?
Yazılım varlıkları (sınıflar, modüller, fonksiyonlar vb.) genişletmeye açık, ancak değiştirmeye kapalı olmalıdır. Yeni özellikler eklemek için mevcut kodu değiştirmek yerine, kodu genişletmek tercih edilmelidir.
Liskov Yerine Geçme Prensibi (LSP) ne anlama gelir?
Türetilmiş sınıflar, temel sınıflarının yerine geçebilmelidir. Yani, bir temel sınıfın nesnelerinin beklendiği yerde, onun türetilmiş sınıfından bir nesne kullanıldığında programın doğruluğu bozulmamalıdır.
Bilgi kartları
Mini test
S1.Hangi prensip, bir sınıfın yalnızca tek bir işlevi yerine getirmesi gerektiğini savunur?
S2.Bir türetilmiş sınıf, temel sınıfın yerine kullanıldığında programın doğruluğu bozulmuyorsa, hangi prensip sağlanmış olur?
S3.Yazılım varlıklarının genişletmeye açık, ancak değiştirmeye kapalı olması gerektiğini savunan prensip hangisidir?
Sık yapılan hatalar
Bir sınıf birden fazla işlev yapabilir, yeter ki hepsi iyi yapılandırılmış olsun. — Doğrusu: Bir sınıfın yalnızca tek bir sorumluluğu olmalıdır. Birden fazla işlev, farklı sınıflara ayrılmalıdır.
Yeni bir özellik eklemek için mevcut kodun değiştirilmesi sorun değil, çünkü bu kod zaten test edilmiştir. — Doğrusu: Yeni özellikler eklerken mevcut kodu değiştirmek yerine, kodu genişletmek (örneğin kalıtım veya kompozisyon yoluyla) tercih edilmelidir.
Sıkça sorulan sorular
SOLID prensipleri nelerdir?
SOLID, Nesne Yönelimli Tasarımın beş temel prensibini temsil eder: Tek Sorumluluk (Single Responsibility), Açık/Kapalı (Open/Closed), Liskov Yerine Geçme (Liskov Substitution), Arayüz Ayırma (Interface Segregation) ve Bağımlılıkların Tersine Çevrilmesi (Dependency Inversion).
Bu ilkeler neden önemlidir?
Bu ilkeler, yazılımın daha esnek, anlaşılır, sürdürülebilir ve yeniden kullanılabilir olmasını sağlar. Kodun bakımını kolaylaştırır ve hataların azaltılmasına yardımcı olur.
SOLID prensipleri sadece Java için mi geçerlidir?
Hayır, SOLID prensipleri herhangi bir nesne yönelimli programlama dilinde (C++, C#, Python, Ruby vb.) uygulanabilen genel tasarım prensipleridir.