Solid İlkeleri (Solid Principles)

Ana Sayfa Blog Solid İlkeleri (Solid Principles)

Solid İlkeleri (Solid Principles)

Merhaba arkadaşlar,

Daha sonra her biri için ayrı ayrı sayfalar oluşturarak detaylandıracağım Solid Prensiplerine (İlkelerine) değinmek istiyorum.

Bu yazıdaki içeriklerin çoğu Wikipedia’dan alınmış ve Laravel bağlamında ekstra açıklamalar eklenmiştir.

Tek Bir Sorumluluk İlkesi (Single Responsibility)

Bir sınıfın (veya kod biriminin) tek sorumluluğu olmalıdır.

Açık/Kapalı İlkesi (Open–Closed)

Bir sınıf genişletmeye açık ama değişikliğe kapalı olmalıdır.

Bir sınıfı genişletebilir veya interface’i implemente edebilirsiniz ancak bir sınıfı doğrudan değiştiremezsiniz. Bunun anlamı, bir sınıfı doğrudan değiştirmek yerine bir sınıfı genişletmeli ve bu yeni genişlemeyi kullanmalısınız demektir.

Ek olarak, sınıf nitelik ve metodlarının uygun bir şekilde private veya protected olarak ayarlanması, böylece bunların dış kaynaklı kodlarla değiştirilememesi demektir.

Liskov İkame İlkesi (Liskov Substitution)

Bir programdaki nesneler yerine, bu nesnelerin alt tiplerinin olguları o programın doğruluğunu değiştirmeksizin konabilmelidir.

PHP’de, bu çoğu keresinde kodunuz için implemente edilecek interface’ler oluşturmanız anlamına gelir. Daha sonra interface’lerin implementasyonlarını değiştirebilirsiniz (geçiş yapabilirsiniz, yani buradaki değiştirme bir interface’in bir implementasyonunun içinin değiştirilmesi değildir, bir interface’in bir implementasyonu yerine o interface’in başka bir implementasyonunun koyulmasıdır). Bunun yapılması, implementasyonla etkileşen uygulama kodunuzda değişiklik yapma zorunluğu olmaksızın mümkün olmalıdır. Interface belirli metodların mevcut olacağını garanti altına alan bir sözleşme olarak hizmet eder.

Interface Ayrımı İlkesi (Interface Segregation)

İşe özgü birçok interface genel amaçlı bir tek interface’den daha iyidir.

Genel olarak, tüm durumlarda çalışmaya kalkışan genel amaçlı bir sınıf oluşturmak yerine, bir interface oluşturmak ve onu birçok kez implemente etmek tercih edilir.

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

Somut sınıflar yerine soyutlamalara bağlı olunmalıdır.

Sınıf bağımlılıklarını somut bir sınıf yerine bir interface olarak tanımlamalısınız. Bu size bağımlılığı kullanan sınıfta değişiklik yapmak zorunda kalmaksızın o interface’in başka bir implementasyonuna geçiş yapma imkanı verecektir.

Sinan Eldem

Fullstack Web Developer

Laravel Framework ile PHP ve MySQL üzerine özel ders, danışmanlık ve web programcılığı hizmetleri veriyorum.

Danışmak istedikleriniz ile ilgili benimle irtibat kurabilirsiniz.

Benzer Yazılar

Linux İşletim Sistemi Tarih ve Saatini Yapılandırma

Yeni bir Linux Sunucu kurulumu, sunucuda köklü bir değişiklik yapıldığında veya gün ışığından dolayı saatler ileri veya geri alındığında bazen Linux Sunucu tarih ve saatini yeniden yapılandırmak gerekir.

Dependency Inversion Principle (Bağımlılığı Tersine Çevirme İlkesi)

Bu son ilke Bağımlılığı Tersine Çevirme ilkesidir ve yüksek düzey kodun düşük düzey koda dayanmaması gerektiğini söyler.

Open–Closed Principle (Açık/Kapalı İlkesi)

Bir uygulamanın ömrü boyunca, sürekli olarak sıfırdan yeni özellikler eklemekten ziyade mevcut kod temeline ekleme yapmak için daha çok zaman harcanır.

Yorumlar