Что такое Внедрение зависимостей
Паттерн передачи зависимостей извне
Внедрение зависимостей (Dependency Injection, DI) — это паттерн проектирования, при котором объект получает свои зависимости извне, а не создаёт их самостоятельно.
Типы внедрения
- Constructor Injection — через конструктор
- Setter Injection — через сеттер-методы
- Interface Injection — через интерфейс
- Property Injection — через публичные свойства
Преимущества
- Слабая связанность — компоненты легко заменяемы
- Тестируемость — легко подставить моки и стабы
- Гибкость — поведение настраивается извне
- Переиспользование — код более модульный
- Чистая архитектура — инверсия зависимостей
Популярные DI-контейнеры
- Spring (Java)
- .NET Core DI (C#)
- InversifyJS (TypeScript)
- Dagger (Android)
- Angular DI