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

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

Неправильное использование композиции может привести к проблемам с управлением зависимостями и нарушению инкапсуляции. Например, если объект-контейнер создаёт зависимые объекты внутри себя, это усложняет тестирование и замену компонентов.

Пример проблемы:

python
class Engine:
    def start(self):
        print("Engine started")

class Car:
    def __init__(self):
        self.engine = Engine()  # Жёсткая зависимость
    
    def start(self):
        self.engine.start()

Здесь Car жёстко зависит от Engine, что затрудняет замену двигателя или мокирование в тестах.

Решение: Внедрять зависимости через конструктор (Dependency Injection):

python
class Car:
    def __init__(self, engine: Engine):
        self.engine = engine  # Гибкая зависимость

Так код становится более гибким и тестируемым.

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

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

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

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