Single Responsibility Principle (Tek Sorumluluk Prensibi)¶
1. Single Responsibility Principle¶
Bir sınıf veya modülün ancak bir sorumluluğu olmalıdır. Yalnızca bir iş yapmalıdır. Bu prensibi daha iyi anlayabilmek için bir ev inşa edilme örneğini düşünelim. Evin mimarı, elektrikçisi, tesisatçısı, duvar ustası vs. her biri kendi işinden sorumludur. Hiçbiri diğerinin işine müdahale etmez. Yazılımda da bu prensip geçerlidir. Bir sınıf veya modül yalnıca bir sorumluluk alır ve onu en iyi şekilde yapar. Ekstradan alakalı olmayan sorumluluklar almaz. Bu standart takip edildiğinde kod daha iyi anlaşılır, test edilebilir ve sürdürülebilir olmaktadır. Bu prensibi anlamak için 2 örnek inceleyeceğiz. Birinci örnek bu prensibi ihlal eden ikinci örnek bu prensibi uygulayan bir örnek olacaktır.
1.1 SRP ihlal¶
class Employee:
def calculate_salary(self):
# maaş hesaplama
pass
def save_to_database(self):
# employee veritabanı kayıt
pass
1.2. SRP uygulama¶
class Employee:
def calculate_salary(self):
# maaş hesaplama
pass
class EmployeeDatabase:
def save_to_database(self, employee):
# employee veritabanı kayıt
pass
Employee ve EmployeeDatabase sınıfları kendilerine has işlerden sorumludur. Maaş hesaplamada yapılacak değişiklik EmployeeDatabase sınıfının fonksiyonlarına etki etmez. Sorumlulukları birbirinden ayırmak, izole etmek değişim için esnek ve sürdürülebilir bir kod yapısı sağlar.