Чем композиция лучше наследования

Python Middle Без компании
Чем композиция лучше наследования
Ответы
Композиция предпочтительнее наследования, когда нужно избежать жесткой связи между классами. **Преимущества композиции:** - Гибкость: можно динамически менять поведение, подставляя разные компоненты. - Избегает проблем хрупкости базового класса (изменения в родительском классе могут сломать дочерние). - Позволяет соблюдать принцип единственной ответственности (SRP). **Пример:** ``` class Engine: def start(self): print("Engine started") class Car: def __init__(self): self.engine = Engine() # Композиция def start(self): self.engine.start() car = Car() car.start() # Output: Engine started ``` **Проблема наследования:** Если `Car` наследует `Engine`, то он становится жестко привязан к нему, что усложняет модификацию (например, замена двигателя на электрический). Композиция делает код более модульным и удобным для тестирования.