Ответ
Инверсия зависимостей (Dependency Inversion Principle, DIP) не всегда уместна. Вот случаи, когда её лучше избегать:
- Простые проекты или утилиты – если код небольшой и не требует гибкости, DI усложнит архитектуру без пользы.
- Высокопроизводительные сценарии – инъекция зависимостей через интерфейсы может добавить накладные расходы.
- Специфичные зависимости – например, доступ к
localStorageили нативным API браузера. Абстрагирование здесь избыточно. - Третьесторонние библиотеки – если библиотека уже предоставляет готовый API, оборачивание в интерфейс не даст преимуществ.
Пример избыточного DI:
// Излишне
interface ILogger {
log(message: string): void;
}
class ConsoleLogger implements ILogger {
log(message: string) {
console.log(message);
}
}
class App {
constructor(private logger: ILogger) {}
}
Вместо этого можно использовать console.log напрямую, если логирование не требует гибкости.