Чем композиция лучше наследования
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`, то он становится жестко привязан к нему, что усложняет модификацию (например, замена двигателя на электрический).
Композиция делает код более модульным и удобным для тестирования.