SOLID Prensipleri

on 19 Ekim 2018 Cuma


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