Встречается на собеседованиях • сегодня

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

Композиция предпочтительнее наследования, когда нужно избежать жесткой связи между классами.

Преимущества композиции:

  • Гибкость: можно динамически менять поведение, подставляя разные компоненты.
  • Избегает проблем хрупкости базового класса (изменения в родительском классе могут сломать дочерние).
  • Позволяет соблюдать принцип единственной ответственности (SRP).

Пример:

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

Композиция делает код более модульным и удобным для тестирования.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы