Dependency injection — передача зависимостей компоненту извне вместо их скрытого создания внутри. Это упрощает замену реализации, тестирование и управление временем жизни ресурсов.
Что такое dependency injection?
Dependency injection — передача зависимостей компоненту извне вместо их скрытого создания внутри. Это упрощает замену реализации, тестирование и управление временем жизни ресурсов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Dependency injection — передача зависимостей компоненту извне вместо их скрытого создания внутри. Это упрощает замену реализации, тестирование и управление временем жизни ресурсов.
Например, OrderService получает repository и отправитель уведомлений через конструктор. В production передают реальные адаптеры, а в тесте — контролируемые fake-объекты. Для DI не обязателен framework или контейнер: обычные параметры функции уже реализуют идею. Контейнер лишь помогает собирать граф и scope зависимостей. Не стоит внедрять всё подряд: полезно явно выделять внешние эффекты и изменяемые детали, сохраняя простой контракт.