Назад к вопросам
СБЕР
Junior — Middle
65
Какими методами реализуется внедрение зависимостей в приложениях?
Компании, где спрашивали
Prooftech
Акселератор возможностей
Firecode
EAGAR
Workme
Ответ от нейросети
sobes.tech AI
Внедрение зависимостей (Dependency Injection, DI) — это паттерн, при котором объект получает свои зависимости извне, а не создаёт их самостоятельно. В Java это реализуется несколькими способами:
- Через конструктор (Constructor Injection): зависимости передаются через параметры конструктора.
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
}
- Через сеттеры (Setter Injection): зависимости устанавливаются через методы-сеттеры после создания объекта.
public class Service {
private Repository repository;
public void setRepository(Repository repository) {
this.repository = repository;
}
}
-
Через интерфейс (Interface Injection): объект реализует интерфейс, который позволяет внедрять зависимости.
-
Использование фреймворков: такие как Spring, которые автоматически управляют внедрением зависимостей через аннотации (@Autowired) и конфигурации.
Каждый метод имеет свои плюсы и минусы, но конструкторное внедрение считается более надёжным, так как зависимости обязательны и объект создаётся в корректном состоянии.