Встречается на собеседованиях • сегодня
В чем разница между внедрением через конструктор, через поле и через метод
Внедрение через конструктор - самый предпочтительный способ, так как делает зависимости явными и позволяет создавать immutable объекты:
java
class Service {
private final Dependency dep;
Service(Dependency dep) { this.dep = dep; }
}Внедрение через поле - менее явное, усложняет тестирование (нужен рефлексия или фреймворк):
java
class Service {
@Autowired
private Dependency dep;
}Внедрение через метод - гибкий вариант, позволяет изменять зависимости после создания объекта:
java
class Service {
private Dependency dep;
void setDep(Dependency dep) { this.dep = dep; }
}Основные различия:
- Конструктор гарантирует инициализацию зависимостей
- Полевое внедрение нарушает инкапсуляцию
- Методное внедрение делает объект mutable

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы