Solid prensipleri nedir?
by admin · Published · Updated
Solid prensipleri, yazılım tasarımındaki beş temel ilkedir. Bu prensipler, yazılımın sürdürülebilirliğini, esnekliğini ve bakımını kolaylaştırmak için kullanılır. Bu prensipler, Robert C. Martin tarafından “Clean Code: A Handbook of Agile Software Craftsmanship” kitabında tanıtılmıştır. Şimdi, SOLID prensiplerini detaylı bir şekilde ele alalım:
1. Single Responsibility Principle (SRP) – Tek Sorumluluk Prensibi:
Bu prensip, bir sınıfın sadece bir sorumluluğu olması gerektiğini belirtir. Her bir sınıfın tek bir görevi yerine getirmesi, kodun anlaşılabilirliğini ve bakımını artırır. Ayrıca, değişikliklerin sadece ilgili sınıfları etkilemesini sağlar. Örneğin, bir müşteri bilgileri sınıfı sadece müşteri bilgilerini yönetmeli ve başka işlevlere bulaşmamalıdır.
2. Open/Closed Principle (OCP) – Açık/Kapalı Prensibi:
Bu prensip, yazılımın genişletilebilir ancak değiştirilemez olması gerektiğini belirtir. Mevcut kodu değiştirmek yerine, yeni işlevselliği eklemek için sınıfları genişletmek önemlidir. Bu, yazılımın uzun vadeli bakımını kolaylaştırır. Örneğin, bir ödeme sistemi sınıfı, yeni ödeme yöntemleri eklemek için genişletilebilir olmalı, ancak mevcut ödeme işlemlerini değiştirmemelidir.
3. Liskov Substitution Principle (LSP) – Liskov’un Yerine Geçme Prensibi:
Bu prensip, bir üst sınıf nesnesinin yerine geçen alt sınıf nesnesinin, programın davranışında herhangi bir değişikliğe neden olmaması gerektiğini belirtir. Bu, kodun daha esnek olmasını ve polimorfizmin kullanılmasını sağlar. Örneğin, bir Şekil sınıfının alt sınıfları (Dikdörtgen, Üçgen) tüm Şekil özelliklerini korumalıdır.
4. Interface Segregation Principle (ISP) – Arayüz Ayırma Prensibi:
Bu prensip, bir sınıfın ihtiyaç duymadığı metodlara bağlı kalmamasını belirtir. Bir sınıf, kendi ihtiyaçlarına uygun olan küçük arayüzleri uygulamalıdır. Bu, bir sınıfın gereksiz bağımlılıklardan kurtulmasını sağlar. Örneğin, bir Canlı varlık sınıfı, Uçabilme ve Yüzme yeteneklerine sahip olabilen ayrı arayüzleri uygulayabilir.
5. Dependency Inversion Principle (DIP) – Bağımlılık Tersine Çevirme Prensibi:
Bu prensip, yüksek seviyeli modüllerin düşük seviyeli modüllere bağlı olmaması, her ikisinin de soyutlamalara bağlı olması gerektiğini belirtir. Bu, bağımlılıkların soyutlamalar üzerinden yönetilmesini sağlar. Örneğin, yüksek seviyeli bir iş süreci sınıfı, düşük seviyeli bir veritabanı erişim sınıfına doğrudan bağlı olmak yerine, bir arayüz üzerinden bağımlılığını yönetebilir.
SOLID prensipleri, yazılım geliştirme süreçlerini daha ölçeklenebilir, sürdürülebilir ve bakımı kolay bir hale getirerek temiz bir kod pratiği sunar. Bu prensiplere uygun kod yazmak, geliştirme ekibinin işbirliğini kolaylaştırır ve yazılımın uzun vadeli başarısını destekler.
Hasan Aslan (Software Developer)