Что обычно внедряют через DI

Ответ

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)
  • Внешние библиотеки (обёрнутые в сервисы)