Ответ
DI (Dependency Injection) обычно внедряют сервисы, утилиты и другие зависимости, которые:
- Имеют сложную логику (API-клиенты, хранилища)
- Требуют мокирования в тестах (сервисы авторизации)
- Должны быть едиными для всего приложения (глобальные конфиги)
Пример с Angular:
@Injectable()
class AuthService {
login() { /* ... */ }
}
@Component({
selector: 'app-login',
template: `...`
})
class LoginComponent {
constructor(private auth: AuthService) {} // DI
}Также через DI часто передают:
- Логгеры
- HTTP-клиенты
- Состояние приложения (Redux/NgRx Store)
- Внешние библиотеки (обёрнутые в сервисы)