Встречается на собеседованиях • сегодня

Какие плюсы и минусы использования сеттера для внедрения зависимости

Плюсы:

  1. Гибкость - зависимость можно изменить в runtime
  2. Удобство тестирования - можно подменить зависимость в тестах
  3. Позволяет избежать циклических зависимостей

Минусы:

  1. Объект может быть в невалидном состоянии, если зависимость не установлена
  2. Нарушает принцип неизменяемости (immutability)
  3. Усложняет отслеживание зависимостей

Пример:

java
class Service {
    private Repository repo;
    
    // Сеттер-инъекция
    public void setRepository(Repository repo) {
        this.repo = repo;
    }
    
    public void doWork() {
        if (repo == null) throw new IllegalStateException();
        repo.save();
    }
}

Лучше использовать конструктор-инъекцию для обязательных зависимостей, а сеттеры - для опциональных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы