DI отделяет создание зависимости от её использования и позволяет управлять реализациями и областями жизни. Это упрощает замену сервисов и тестирование.
Зачем нужен DI в Angular, если можно создавать зависимости через new или хранить их в глобальном состоянии?
DI отделяет создание зависимости от её использования и позволяет управлять реализациями и областями жизни. Это упрощает замену сервисов и тестирование.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
DI отделяет создание зависимости от её использования и позволяет управлять реализациями и областями жизни. Это упрощает замену сервисов и тестирование.
При new компонент сам решает, как создать сервис и его зависимости; глобальное состояние даёт плохо контролируемое совместное использование. Injector выбирает provider по токену и может создавать разные экземпляры на разных уровнях. DI не означает, что все сервисы всегда singleton: область определяется конфигурацией providers.