Skip to main content
Yazılım Geliştirme

SOLID Prensipleri: Yazılım Tasarım Rehberi

Mart 15, 2026 3 dk okuma 10 views Raw
Yazılım tasarım prensipleri geliştirme ekranı
İçindekiler

SOLID Prensipleri Nedir?

SOLID, Robert C. Martin tarafından ortaya konan beş nesne yönelimli tasarım prensibinin kısaltmasıdır. Bu prensipler, sürdürülebilir, esnek ve bakımı kolay yazılımlar geliştirmek için temel rehberlerdir. SOLID prensiplerini uygulamak, kodun kalitesini artırır ve teknik borcu azaltır.

S - Single Responsibility Principle (Tek Sorumluluk Prensibi)

Bir sınıf yalnızca tek bir sorumluluğa sahip olmalıdır. Başka bir deyişle, bir sınıfın değişmesi için yalnızca tek bir neden olmalıdır.

Neden Önemlidir?

  • Sınıflar daha küçük ve odaklı olur
  • Test yazmak kolaylaşır
  • Değişiklikler diğer işlevleri etkilemez
  • Kod daha okunabilir hale gelir
Bir sınıf hem veritabanı işlemlerini hem de e-posta gönderimini yapıyorsa, iki farklı nedenden dolayı değişebilir. Bu durumda sınıf ikiye ayrılmalıdır.

O - Open/Closed Principle (Açık/Kapalı Prensibi)

Yazılım varlıkları (sınıflar, modüller, fonksiyonlar) genişletmeye açık, değişikliğe kapalı olmalıdır. Yeni davranışlar eklerken mevcut kodu değiştirmek yerine, yeni kod yazarak genişletme yapılmalıdır.

Nasıl Uygulanır?

Soyut sınıflar ve arayüzler kullanarak bağımlılıkları soyutlayabilirsiniz. Strateji deseni, dekoratör deseni gibi tasarım kalıpları bu prensibin uygulanmasında yardımcı olur.

L - Liskov Substitution Principle (Liskov Yerine Geçme Prensibi)

Alt sınıflar, üst sınıfların yerine geçebilmelidir. Bir üst sınıf türündeki bir değişken, herhangi bir alt sınıf nesnesiyle sorunsuz çalışmalıdır.

Dikkat Edilmesi Gerekenler

  1. Alt sınıflar, üst sınıfın sözleşmesini (contract) ihlal etmemelidir
  2. Ön koşullar güçlendirilmemeli, son koşullar zayıflatılmamalıdır
  3. Alt sınıflar, üst sınıfın davranışını beklenmedik şekilde değiştirmemelidir

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

İstemciler, kullanmadıkları arayüzlere bağımlı olmaya zorlanmamalıdır. Büyük ve genel arayüzler yerine, küçük ve spesifik arayüzler tercih edilmelidir.

Kötü Uygulamaİyi Uygulama
Tek büyük arayüz ile tüm işlevlerHer işlev grubu için ayrı arayüz
İstemciler kullanmadığı metodları implement ederİstemciler yalnızca ihtiyaç duydukları arayüzleri implement eder
Değişiklikler tüm istemcileri etkilerDeğişiklikler yalnızca ilgili istemcileri etkiler

D - Dependency Inversion Principle (Bağımlılık Tersine Çevirme Prensibi)

Yüksek seviyeli modüller, düşük seviyeli modüllere bağımlı olmamalıdır. Her ikisi de soyutlamalara bağımlı olmalıdır. Soyutlamalar detaylara, detaylar soyutlamalara bağımlı olmalıdır.

Dependency Injection

Bu prensip genellikle Dependency Injection (Bağımlılık Enjeksiyonu) ile uygulanır. DI, bağımlılıkların dışarıdan sağlanmasını ve soyutlamalar üzerinden çalışılmasını mümkün kılar.

  • Constructor Injection: Bağımlılıklar yapıcı metod üzerinden sağlanır
  • Setter Injection: Bağımlılıklar setter metodlar üzerinden sağlanır
  • Interface Injection: Bağımlılıklar arayüz üzerinden sağlanır

SOLID Prensiplerini Pratikte Uygulama

SOLID prensiplerini günlük geliştirme pratiğinize dahil etmek için şu adımları izleyebilirsiniz:

  1. Yeni bir sınıf yazarken sorumluluklarını açıkça tanımlayın
  2. Sınıflarınızı genişletmeye açık tasarlayın; soyut sınıflar ve arayüzler kullanın
  3. Kalıtım ilişkilerinde Liskov prensibini göz önünde bulundurun
  4. Büyük arayüzleri küçük ve odaklı arayüzlere ayırın
  5. Somut sınıflara değil, soyutlamalara bağımlı olun

Sonuç

SOLID prensipleri, kaliteli ve sürdürülebilir yazılım geliştirmenin temel taşlarıdır. Ekolsoft olarak yazılım projelerimizde bu prensipleri titizlikle uygulayarak bakımı kolay, esnek ve ölçeklenebilir çözümler üretiyoruz. Bu prensipleri öğrenmek ve uygulamak, her yazılım geliştiricinin profesyonel gelişiminde kritik bir adımdır.

Bu yazıyı paylaş