SRP(Single Responsibility Principle). Temel olarak her modül ve sınıf, farklı birer pozisyona atanmış işçiler gibi düşünülmelidir.

Örnek olarak bir Okulu düşünürsek daha açık şekilde anlayabiliriz.

  •    Yönetim kurulu bir okulun oluşturulmasını sağlar ve personelleri görevlerine atar.
  •    Müdür, yönetime gidecek işleri organize eder ve yönetimin yükünü azaltır. Okul gidişatını belirler
  •    Bir öğretmen bir derse(uzmanlık alanı) girer ve öğrenciye uzmanlığını aktarır.
  •    Arka-plan çalışanları, can dostlarımız hademeler ise tüm herkesin iyiliği için okulun temizliği ve okul çalışanlarının ihtiyaçları ile ilgilenir.

Gidişat bu şekildedir. Hiç bir hademe bir öğretmenin öğretmesi gerekeni öğretmez, herkes kendi görevinden mükelleftir. Elbette hademe de öğrenciye veyahut öğretmene bir şey öğretir fakat bu ders prensipleri içinde değildir.

 

Bu durumda bir programın gidişatını, henüz inşaat halinde bir okul olarak düşünerek başlayabiliriz.


Programımızın ilk hali aşağıdaki gibi olacaktır.


 

Person dediğimiz sınıf ise;

şeklinde farklı bir .cs dosyasıdır ( Yeni bir çalışan 🙂 ).

Bu noktada okulumuzun dağınık konumdaki personellerine birer konum veririz. Öğretmen, Öğretmen sınıfına aittir

Öğrenci ise Öğrenci sınıfına…

StandartMessages diye harici bir sınıf oluşturalım ve mesajlarımızı birer çalışan olarak düşünüp onları görevlerine atayalım.

Bu şekilde temel bir yapıya bürünmüş olup, aslında izlememiz gereken yolu kafamızda da çizmiş olduk.

 

bu durumda Programın ilerleyişi bu şekilde olmuş olacaktır.
Şimdi ise yeni bir Kişi(Person) oluşturup önümüzdeki kodları kaldıralım. Sürekli aynı işi yapmamıza gerek kalmasın.

PersonDataCapture adında bir sınıf oluşturalım.


 

sınıf yapımızı geriye yeni bir Person objesi oluşturacak metodu bu şekilde dizayn ediyoruz.

ve Programımız bu şekilde gelişecek.

 

Şimdi ise PersonValidator adında, kullanıcıyı kontrol eden sınıf, metot düzenini oluşturalım.

 

bu biçimde kullanıcıyı denetledikten sonra programın gidişatına bakalım.

 

Şimdi ise kullanıcı adımızı oluşturacak metodumuzu(hatırlama; Console.WriteLine($”Your username is {user.FirstName.Substring(0, 1)}{user.LastName}”);

AccountGenerator adında bir sınıf oluşturup metodumuzu hazırlayalım.

 

ve programımızın son hali şu şekilde gözükecektir.

 

bu şekilde Single Responsibilty Principle prensibine uyarak tertemiz kod yazmış oluruz. Sürekli üstünde durduğum gibi, sakın unutmayın bu işin püf noktası;

Her iş için farklı işçi.

Programı sık boğaz etmediğimiz takdirde programımız da bizi sık boğaz etmeyecektir 🙂

Single Responsibilty Principle, SOLID kavramının bir parçasıdır ve geriye kalan parçalarını da ilerleyen zamanlarda tekrardan beraber öğrenmiş olacağız.

 

Diğer konularımıza da bakın !