Чем Dependency Injection отличается от service locator?
Что хотят услышать интервьюеры:
Отличие от service locator: Dependency Injection обычно используют, когда нужна задача из контекста «DI», а service locator применяют в другом уровне абстракции или при другой сложности.
Ответ:
Как выбирать:
- зависимость от абстракций облегчает mock/fake
- composition root собирает граф
- оцените стоимость поддержки, тестируемость и понятность для команды
Ошибка: выбирать инструмент по привычке, а не по требованиям конкретного flow. Сильный ответ: приведите пример, когда Dependency Injection уместен, и пример, когда лучше выбрать service locator.