arrow_backYazılara Dön
Mühendislik3 Dk Okuma

Single Responsibility Prensibi (SRP) — SOLID

Medium'da Oku

Tek Sorumluluk Yazılım Prensibi Tek Sorumluluk Yazılım Prensibi

Single Responsibility Principle (Tek Sorumluluk Prensibi), bağımlılık yönetiminin kötü olmasından kaynaklanan sabit (tekrar kullanılamayan) ve kırılgan (değişikliğin farklı yerleri etkilemesi) kodu daha modüler hale getirmeye yardımcı olmayı amaçlamaktadır.

Bob Amca der ki; Aynı nedenle değişenleri bir araya toplayın ve farklı nedenlerle değişenleri ayırın.

Sınıfımız ne kadar çok sorumluluk yüklenirse, o kadar fazla değişime uğramak zorunda kalır. Böylece ufak bir güncellemenin bile maliyeti katlanarak artar ve kod parçalarımız değişime direnmeye başlar.

Single Responsibility Prensibi (SRP) — SOLID

Bizim amacımız “çalışıyorsa hiç dokunmayalım” konuşmasını yapmadan sorumluluklarımızı azaltıp, değişime kolay adapte olmayı sağlamaktır.

Peki bu aslında ne anlama geliyor ? Aşağıdaki örneği ele alalım.

Single Responsibility Prensibi (SRP) — SOLID

public class Fatura{     public void FaturaEkle()     {        // İş Kuralları     }     public void FaturaSil()     {        // İş Kuralları     }     public void RaporHazirla()     {        // İş Kuralları     }     public void EmailGonder()     {        // İş Kuralları     }}

FaturaEkle() metodumuz yalnızca sisteme fatura eklemekten sorumludur, FaturaSil() metodu sadece faturaları silmekten sorumludur ve aynı olay RaporHazirla() ve EmailGonder() metodları için de geçerlidir.

Burada metodların tek sorumluluk prensibini karşıladığını söyleyebiliriz. Ama Fatura sınıfına bakarsanız tek sorumluluk prensibini yerine getirmeyen birden fazla sorumluluk ile ilgilendiğini göreceksiniz.

Burada yapmamız gereken nedir ?

FaturaEkle() ve FaturaSil() metodlarımız, benzer özellikte bir işlevsellik yaptıkları için tek sınıfta birleştirmemiz gerekir.

RaporHazirla() ve EmailGonder() metodları için tamamen bağımsız ve farklı işlevlere sahip oldukları ayrı ayrı sınıflar oluşturmamız tek sorumluluk prensibini yerine getirmemiz demektir.

O zaman hemen düzeltiyoruz!

Single Responsibility Prensibi (SRP) — SOLID Single Responsibility Prensibi (SRP) — SOLID

public class Fatura{     public void FaturaEkle()     {         // İş Kuralları     }          public void FaturaSil()     {         // İş Kuralları     }}public class Rapor{     public void RaporHazirla()     {         // İş Kuralları     }}   public class Email{     public void EmailGonder()     {         // İş Kuralları     }}

İşte bu kadar!

Artık her sınıfın sadece bir sorumluluğu ve değişmek için sadece tek bir nedeni oldu. Kod artık her işlevsellik için daha küçük ve yönetilebilir durumda. Böylece herhangi bir sınıf için değişiklik yapmak istediğinizde, tüm sınıfın ne yaptığına bakmak veya test etme gereksiniminiz olmayacak.

Bu şekildeki kullanımlarda hem kodumuzun kontrolü daha kolaylaşıyor hem de tekrar kullanılabilirliği (Reusability) artıyor.

ÖZET

Artık kodun nasıl yeniden düzenleneceğini ve Tek Sorumluluk İlkesine nasıl ulaşılacağını anladık. Single Responsibility Prensibi, programın karmaşıklığını azaltmamıza ve kodun bakımını daha kolay hale getirmemize yardımcı olur.

Okuduğunuz için Minnettarım.

Sağlıcakla kalın Dostlarım..

SOLID prensiplerine devam etmek için Open / Closed Prensibi**’**ne göz atabilirsiniz;

👉 Open-Closed Principle (OCP) — SOLID

Kaynakça;

What is Single Responsibility Principle (Important)

Single Responsibility With C#

Dotnet Tutorials for SOLID

Explained SRP

Paylaş:
TREN