Встречается на собеседованиях • сегодня
Какие плюсы и минусы использования конструктора для внедрения зависимости
Плюсы:
- Явная зависимость: все зависимости видны в конструкторе, что делает код прозрачным.
- Неизменяемость: после создания объекта зависимости нельзя изменить (final поля).
- Легкость тестирования: зависимости легко подменить моками в unit-тестах.
- Однозначность: исключает циклические зависимости, так как они обнаруживаются при создании объекта.
Минусы:
- Большое количество параметров: если зависимостей много, конструктор становится громоздким (антипаттерн "Труба").
- Сложность в legacy-коде: трудно внедрить в старый код, где зависимости создаются внутри класса.
Пример:
java
class UserService {
private final UserRepository userRepo;
private final EmailService emailService;
public UserService(UserRepository userRepo, EmailService emailService) {
this.userRepo = userRepo;
this.emailService = emailService;
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы