Merhaba, değerli Jetto Net forumu üyeleri,
Nesne tabanlı programlamada kodumuzu solid prensiblerine uygun şekilde yazmamız gerekmektedir. Bu şekilde yazılmayan kodlar hatalı oluyor gibi birşey söylemiyorum ama Solid prensibi kullanılarak yazılan program daha sürdürülebilir , esnek ve başkaları tarafından kolayca anlaşılabilir olmaktadır.
SOLID Prensipleri Nedir?
SOLID, nesne yönelimli programlamanın beş temel prensibinin baş harflerinden oluşan bir kısaltmadır:
- 1. Single Responsibility Principle (Tek Sorumluluk Prensibi) ile, her sınıf veya modül sadece bir tek görev üstlenmelidir. Bu, sınıfların ve modüllerin değiştirilmesi durumunda sadece tek bir nedenle değişecek olmasını sağlar. Örneğin, bir müşteri sınıfı sadece müşteri bilgilerini saklamak ve bu bilgileri döndürmek gibi bir görev üstlenmelidir. Bu sınıfın, müşteri bilgilerini veritabanına kaydetme gibi bir görev de üstlenmemesi gerekir.
- 2. Open/Closed Principle (Açık/Kapalı Prensibi) ile, yazılım modülleri veya sınıfları, içerisindeki kodların değiştirilmemesi koşuluyla genişletilebilir veya değiştirilebilir olmalıdır. Örneğin, bir sipariş işleme sınıfı, yeni bir ödeme yöntemi eklenirken kodların değiştirilmemesi koşuluyla genişletilebilir olmalıdır.
- 3. Liskov Substitution Principle (Liskov Değiştirme Prensibi) ile, alt sınıflar, üst sınıfların yerine kullanılabilecek şekilde tasarlanmalıdır. Örneğin, bir araba sınıfının bir alt sınıfı olarak bir otomobil sınıfı tanımlanabilir. Bu iki sınıf arasında Liskov Substitution Principle uygulandığında, araba sınıfının yerine otomobil sınıfı kullanılabilir.
- 4. Interface Segregation Principle (Arayüz Ayırma Prensibi) ile, kullanıcılar için gereksiz metotları içermemek üzere, arayüzler özelleştirilmelidir. Örneğin, bir müşteri sınıfı için bir arayüz tanımlanabilir. Bu arayüz sadece müşteri bilgilerini döndüren metotlar içermelidir.
- 5. Dependency Inversion Principle (Bağımlılık Tersine Çevirme Prensibi), yazılım modülleri arasındaki bağımlılıkların tersine çevrilmesini amaçlar. Bu prensip ile modüller arasındaki bağımlılıklar arayüzler aracılığıyla kurulur. Bu sayede modüller arasındaki bağımlılıklar daha esnek hale gelir ve modüllerin değiştirilmesi durumunda diğer modüllerin etkilenmemesi sağlanır. Örneğin, bir uygulama içinde bir veritabanı sınıfı kullanılıyorsa, bu sınıf bir arayüz aracılığıyla tanımlanmalıdır. Böylece veritabanı sınıfı değiştirildiğinde, diğer modüller etkilenmemektedir.
SOLID Prensiplerinin Faydaları:
- Daha Anlaşılır Kod: SOLID prensipleri, programın daha iyi organize olmasını ve daha kolay anlaşılmasını sağlar.
- Daha Esnek Kod: SOLID prensiplerine uygun yazılan bir kod, değişime daha açıktır ve yeni özelliklerin eklenmesi daha kolaydır.
- Daha Az Hata: SOLID prensipleri, kodunuzdaki bağımlılıkları azaltarak hata yapma olasılığını düşürür.
- Daha Kolay Test Edilebilir Kod: SOLID prensipleri, kodunuzun daha modüler olmasını sağlayarak test etmeyi kolaylaştırır.
SOLID Prensipleri Nasıl Uygulanır?
SOLID prensiplerini uygulamak için aşağıdaki ipuçlarını takip edebilirsiniz:
- Sınıflarınızı tek bir sorumluluğa sahip olacak şekilde tasarlayın.
- Yeni özellikler eklerken mevcut kodu değiştirmek yerine, yeni sınıflar veya modüller oluşturun.
- Alt sınıfların, üst sınıfların yerine sorunsuz bir şekilde kullanılabildiğinden emin olun.
- Genel amaçlı büyük arayüzler yerine, daha küçük ve özelleşmiş arayüzler kullanın.
- Yüksek seviyeli modüllerin, düşük seviyeli modüllere doğrudan bağımlı olmamasını sağlayın.
Özetle, SOLID prensipleri, nesne yönelimli tasarımın temelini oluşturur. Bu prensiplere uygun kod yazarak, daha sürdürülebilir, esnek ve anlaşılır yazılımlar geliştirebilirsiniz. SOLID prensiplerini öğrenmek ve uygulamak, bir yazılım geliştirici olarak kariyerinizde size büyük avantaj sağlayacaktır.
Umarım bu içerik, SOLID prensiplerini anlamanıza ve uygulamanıza yardımcı olur. Yorumlar kısmında sorularınızı veya görüşlerinizi yazabilirsiniz.
İyi Kodlamalar!