SOLİD Prensipleri

Selamlar, bugün sizlerle SOLID Prensiplerini öğreneceğiz. Hazırsanız haydi başlayalım.


SOLID NEDİR?

Robert Martin tarafından Nesne Tabanlı Programlamanın(Object Oriented Programming) ilk 5 maddesi olarak tanımlandı. Prensiplerin amacı yazılan kodların yeniliklere açık, değişikliklerden az etkilenme ve zaman kaybını minimize etmedir.

S.O.L.I.D prensiplerinin ilk 5 maddesi aşağıdaki gibidir :

  • S : Single Responsibility Principle (Tek Sorumluluk Prensibi)
  • O : Open Closed Principle (Açık Kapalı Prensibi)
  • L : Liskov Substitution Principle (Liskov’un Yerine Koyma Prensibi)
  • I : Interface Segregation Principle (Arayüz Ayrımı Prensibi)
  • D : Dependency Inversion Principle (Bağımlılıkların Ters Çevrilmesi Prensibi)

Single Responsibility Principle (Tek Sorumluluk Prensibi)

Bir sınıfın ya da metodun tek görevi olmalıdır. Başka sınıfların görevlerini yapmamalıdır.

Örnek : Temizlikçi sınıfında temizlikYap() metodu olur temizlikMalzemeleriAl() metodu olmamalı. Temizlikçi normalde temizlik için malzeme alabilir ama onun ana görevi değildir. Tek Sorumluluk Prensibine uygun bir durum olur.


Open Closed Principle (Açık Kapalı Prensibi)

Bir uygulamanın, programın, sınıf objelerinin gelişime açık, değişime kapalı olmalıdır. Genellikle uygulamalarda değişiklik ve güncellemeler olağan bir durumdur. Interface ve Abstract sınıfları kullanılarak istenen eklemeler yapılabilir.


Liskov Substitution Principle (Liskov’un Yerine Koyma Prensibi)

Bir main sınıftan ya da sınıflardan kalıtılan sınıfların üst hiyerarşideki sınıfların yerine geçebilmesidir.

Örnek : Dörtgenler üst sınıf olsun. Kareler de subclass olsun. Boyutları değiştirmeye yarayan bir metod tanımlansın. Metodun içerisinde kısa kenar 10 cm, uzun kenar 30 cm olsun. Kare sınıfına Liskov Yerine Koyma Prensibini uyguladığımızda istenilen sonuç alınamaz. Çünkü Kare sınıfında tüm kenarlar eşittir.


Interface Segregation Principle (Arayüz Ayrımı Prensibi)

Bir interface’e gerekli olmayan yapıların eklenmemesini sağlayan prensiptir. Interface’de sadece kullanılacak olan yapıların eklenmesi gerektiği vurgulanır.

Örnek : 2 boyutlu şekillerin olduğu bir class’ta hacmi hesaplayan bir metodun tanımlanması gereksizdir. 2 boyutlu şekillerin hacmi yoktur ve Interface Segregation Principle ters düşmektedir.


Dependency Inversion Principle (Bağımlılıkların Ters Çevrilmesi Prensibi)

Üst ve alt sınıflar somut olmayan soyutlamalara bağımlı olması gerekir. Alt sınıflarda yapılan herhangi bir değişiklik üst sınıfları etkilememesi gerekmektedir.


S.O.L.I.D prensiplerini öğrendik. Gelecek yazılarda görüşmek üzere. Kolay gelsin herkese 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir