“Single Responsibility Principle” (SRP) Kullanımı

“Single Responsibility Principle” (SRP), yazılım mühendisliğindeki SOLID prensiplerinin ilkidir ve bu prensiplerin temelini oluşturur. SRP, yazılım tasarımında “sorumluluk” kavramına odaklanır. Peki, bu sorumluluk nedir ve yazılım dünyasında neden bu kadar önemlidir? Detaylarıyla inceleyelim:

“Single Responsibility Principle” Ne Söyler?

Nasıl ki gündelik hayatta öncelikli olarak yapmamız gereken işlerimiz aynı zamanda bizim sorumluluklarımız oluyorsa, yazılımda da benzer bir durum söz konusudur. Bir sınıf veya modülün sorumluluğu, yani onun yazılım içindeki “iş”ini veya “rolü”nü tanımlar.

Malumunuz kişinin birden fazla sorumluluğu olduğu zaman, dikkatini ve çabasını bölmek zorunda kalır, bu da verimlilik ve odaklanma açısından sorunlara yol açabilir. İşte tam da bu sebepten “SRP” de her sınıfın yalnızca bir sorumluluğu olması gerektiğini öne sürer. Zira bir sınıf birden fazla işlevi üstlendiğinde, kodun anlaşılabilirliği, bakımı ve genişletilmesi zorlaşır.

Yazılımda bu durumu, sınıflarımızın net ve odaklanmış sorumlulukları olacak şekilde tasarlayarak aşarız. Örnek olarak, bir e-ticaret uygulamasını ele alalım. Kullanıcı arayüzünü yöneten bir sınıf, aynı zamanda ödeme işlemlerini ve veritabanı kayıtlarını da yönetiyorsa, bu sınıf fazla yüklenmiş demektir. Bakınız:

Bu kodda ECommerceApplication sınıfı, kullanıcı arayüzü yönetimi, ödeme işlemleri ve veritabanı yönetimi gibi birçok farklı işlevi üstlenir. Görüldüğü üzere oldukça karmaşık görünmektedir. İşte SRP’yi uygulayarak, bu üç işlevi ayrı ayrı sınıflara bölebiliriz:

  1. Kullanıcı Arayüzü Yönetimi Sınıfı: Kullanıcı arayüzüne odakladığımız bu sınıf, kullanıcı girdilerini alır ve arayüz güncellemelerini yönetir.
  2. Ödeme İşlemleri Sınıfı: Ödeme sürecine odaklanan bu sınıfımız ise ödeme bilgilerini işler ve ödeme doğrulamasını gerçekleştirir.
  3. Veritabanı Yönetimi Sınıfı: Veritabanı ile ilgili işlemleri yönetmek için oluşturduğum bu sınıf ise kullanıcı bilgilerini, sipariş geçmişini saklar ve sorguları yürütür.

Yani buna göre kodumuz aşağıdaki gibi olur:

Yukarıdaki kodumuzda her sınıf, kendi sorumluluk alanına odaklanır, böylece kod daha temiz, anlaşılır ve bakımı kolay hale gelir.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu