15 1 0 4000 1 https://haktanbozer.com.tr 300

SOLID Yazılım İlkeleri Nedir?

S.O.L.I.D. nesne yönelimli programlamada, tasarımları daha anlaşılır, esnek ve sürdürülebilir kılmayı amaçlayan, beş tasarım ilkesinin anımsatıcı bir kısaltmasıdır.

Bu ilkeler, Amerikalı yazılım mühendisi ve eğitmen Robert C. Martin tarafından tanıtılan ilkelerin bir alt kümesi olan bu ilkeler, ilk olarak 2000 yılında yayımlanan “Tasarım İlkeleri ve Tasarım Modelleri” makalesinde tanıtılmıştır.

 

Tek Sorumluluk İlkesi (Single Responsibility Principle)

Oluşturulan yapıların(method, class vb.) tek bir görevi olmalıdır. Sadece belirlenen işi yapmalıdır. Başka bir söyleyişle, bir birim sadece bir etkene karşı sorumlu olmalıdır. Etken terimi, birimde değişiklik gerektiren bir küme (en az bir paydaş veya kullanıcıdan oluşan) için kullanılır.

Terimin oluşturuccusu Robert C. Martin, bu ilkeyi, “Bir sınıfın değişmek için bir tek nedeni olmalıdır” şeklinde ifade eder.
“Neden” deyişindeki karışığa “ilke, insanlarla ilgilidir” diyerek açıklık getirmiştir.
Bazı konuşmalarında bu ilkenin, özellikle görevler veya etkenler hakkında olduğunu da savunmaktadır. Örneğin, aynı kişi olabilseler de bir saymanın görevi, bir veri tabanı yöneticisininkinden ayrıdır. Bu nedenle her bir görevden bir tek birim sorumlu olmalıdır.

 

Açıklık – Kapalılık İlkesi (Open Cosed Principle)

Yazılım varlıklarının (sınıflar, modüller, işlevler, vb.) genişletme için açık, ancak değişiklik için kapalı olmalıdır. Yazılan kodları değiştirme ihtiyacı bulunmadan, eklemeler/düzenlemeler yapılmasıdır.

 

Liskov İkame İlkesi (Liskov Substitution Principle)

Alt sınıflardan oluşturulan bir nesnenin, üst sınıflardan oluşturulan bir nesne ile yer değiştirmesi halinde aynı davranış ve özellikleri sergilemesidir. Türetilen sınıflar, türeyen sınıfların tüm özelliklerini kullanabilmelidir. Kullanılmaması gereken durumlar var ise yapıyı ayrıştırmak gerekir.

 

Arayüz Ayrımı İlkesi (Interface Segregation Principle)

Nesnelerin ihtiyacı olmayan metodların arayüzlerden ayrıştıırlmasıdır. Bir arayüze sadece gerektiği kadar yetenek eklenmelidir. Daha fazla yetenek eklenmek isteniyorsa, nesnelerin ihtiyaçlarına göre yetenekler bölüştürülmelidir.

 

Bağımlılığın Tersine Çevrilmesi (Dependency Inversion Principle)

Sınıfların seviyelerine göre gruplandırılmasıdır. Yüksek seviye sınıflar, düşük seviyeli sınıflarla bağlantılı olmamalıdır. Her iki sınıf da soyut kavramlar (Abstract Class veya Interface) ile bağlantılı olmalıdır.

 

Kaynakça

https://tr.wikipedia.org/wiki/SOLID_Yaz%C4%B1l%C4%B1m_%C4%B0lkeleri

https://tr.wikipedia.org/wiki/Tek_sorumluluk_ilkesi

https://en.wikipedia.org/wiki/Liskov_substitution_principle

https://en.wikipedia.org/wiki/Interface_segregation_principle

 

Paylaş:
Ulam:Nedir?
Önceki Yazı
Java Metodlarda Özyineleme
Sıradaki Yazı
Yazılım Tasarım Desenleri Nedir?