المسؤولية الواحدة
الدرس 22 من 28 في دورة Clean Code - كتابة كود أفضل باستخدام Python على Coddy.
"يجب ألا يكون هناك أبداً أكثر من سبب واحد لتغيير الفئة."
ينص مبدأ المسؤولية الواحدة (SRP) على أن كل فئة ودالة يجب أن يكون لها وظيفة واحدة فقط أو سبب واحد للتغيير.
الأهداف -
- إنشاء فئات ودوال ذات تماسك عالٍ وقوة.
- تعزيز تكوين الفئات (class composition)
- تجنب تكرار الكود
التحدي
متوسطلقد تم إعطاؤك الفئة Person التي تحتوي على طريقة save لحفظ الشخص في قاعدة البيانات.
في الكود المعطى، تمتلك الفئة مسؤوليتين:
- إنشاء وإدارة كائن الشخص
- حفظ الشخص في قاعدة البيانات
مهمتك هي التأكد من أن Person لديها مسؤولية واحدة فقط.
- قم بإنشاء الفئة
Databaseمع الطريقةsave. - قم بإنشاء اتصال بين
PersonوDatabase
هناك العديد من الخيارات للقيام بهذه المهمة، نحن نهدف إلى خيار محدد، استخدم التلميحات عند الحاجة!
لاحظ أنه عندما نقوم بإنشاء فئة منفصلة لـ Database، يمكننا إدارة جميع الأمور "Database related" في مكان واحد!
جرّب بنفسك
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)