ما هو التركيب؟
بناء كائن يحتوي كائنات أخرى كأجزاء — علاقة "has-a" (يملك).
class Engine:
def start(self):
print("المحرّك يعمل")
class Car:
def __init__(self):
self.engine = Engine() # السيّارة "تملك" محرّكًا
def start(self):
self.engine.start() # تفويض للجزء
car = Car()
car.start()
التركيب مقابل الوراثة
- الوراثة (is-a): الكلب هو حيوان.
- التركيب (has-a): السيّارة تملك محرّكًا.
"فضّل التركيب على الوراثة"
مبدأ تصميم شهير:
- الوراثة العميقة هشّة (تغيير الأب يكسر الأبناء).
- التركيب أكثر مرونة: تبدّل الأجزاء بسهولة.
class Logger:
def log(self, msg): print(msg)
class Service:
def __init__(self, logger):
self.logger = logger # حقن الاعتمادية (مرن)
💡 ابدأ بالتركيب، واستخدم الوراثة فقط عندما تكون العلاقة "is-a" حقيقية وواضحة.
🎯 التالي: العلاقات بين الكائنات.