SOLID, OOP(Object-oriented programming) ve tasarımının ilk beş ilkesidir. Fikir sahiplerinin de dediği gibi kısaca bu şekilde belirtebiliriz.
SOLID, kötü tasarımdan
kaçınmak, yazılımı uygun bir şekilde geliştirmek, açık bir konsepte sahip olmak
için gereken bir kodlama standartıdır.(Açık derken açıklayacağımJ)
Bu ilkelerin bilinmesi
yazılımcıların hem fikir olduğu konulardan birisi. Bu yüzden mülakat sınavlarının
değişmezlerindendir kendisi. Yeni mezun bir yazılımcı adayıysanız mutlaka
araştırın.
İlkeleri basit bir şekilde açıklamaya
çalışacağız, böylece yeni başlayanlarında anlaması kolay olacak. Her bir
prensibi tek tek inceleyeceğiz.
Single Responsibility Principle
Bir sınıf tek bir amaca hizmet etmelidir. Bir
sınıfın değişmesi gereken tek bir nedeni olmalıdır. Bu her sınıfın tek bir
metodu olduğu anlamına gelmez, ancak bunların hepsi sınıfın sorumluluğuyla
alakalı olmalıdır. Bir metod birden fazla amaca hizmet etmeye başladığı zaman
sınıflara bölünmelidir.
Open-Closed Principle
Bunu en iyi açıklayan ifade en klasik olan
her yerde görebileceğiniz ifade olacaktır. Nesne genişlemeye açık ancak
değişikliklere kapalı olmalıdır. Bu prensibi yeterince kuvvetli bir şekilde
kullanabilseydik, daha sonra kodumuzun davranışını hiçbir zaman orijinal kod
parçasına dokunmadan değiştirmek mümkün olurdu.
Liskov Substitution Principle
Türetilen sınıflar, türeyen sınıfların tüm
özelliklerini kullanmak zorundadır. Kullanılmaması durumdan üst sınıflarda tip
kontrolleri için if-else blokları giderek artacaktır. Bir başka deyişle Alt sınıflar
üst sınıfların nesneleriyle yer değiştirdiklerinde aynı davranışı göstermek
zorundalar.
Interface Segregation Principle
Bir sınıfın kullandığı Interface’ten
kullanmadığı özellikleri ayrıştırılmalıdır. Interfaceleri daha küçük alanlara
bölmemiz gerektiğini söyler. Bir sınıf herhangi bir Interface’in bir metodunu
kullanacak diye bütün Interface’i implemente etmemek gerekir.
Dependency Inversion Principle
Üst seviye(base) sınıflar,metotlar vs. düşük
seviyeli sınıflara,metotlara vs bağlı olmamalıdır. Düşük seviyeli sınıflarda
yapılan değişiklikler base üst seviye sınıfları etkilememelidir. Kimse
telefonun ekranı kırıldığı zaman telefonu değiştirmek zorunda olmak istemez.
Tüm bu ilkeler uyması, uygulaması zor olmayan
en temel prensiplerdir. Bunları kullanmak projelerimizde uygulamanın bakımı
açısından büyük bir etki oluşturacaktır.
0 yorum:
Yorum Gönder