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

Какой бы выбрал способ внедрения зависимости

В Java есть три основных способа внедрения зависимостей:

  1. Через конструктор (наиболее предпочтительный)
    java
    public class UserService {
        private final UserRepository repository;
        
        public UserService(UserRepository repository) {
            this.repository = repository;
        }
    }
    • Плюсы: неизменяемость, явная зависимость, удобно тестировать
    • Минусы: может быть много параметров
  1. Через сеттеры

    java
    public class UserService {
        private UserRepository repository;
        
        public void setRepository(UserRepository repository) {
            this.repository = repository;
        }
    }
    • Плюсы: гибкость
    • Минусы: зависимость может быть не установлена
  2. Через поле (не рекомендуется)

    java
    public class UserService {
        @Autowired
        private UserRepository repository;
    }
    • Плюсы: краткость
    • Минусы: сложно тестировать, скрытая зависимость

Выбор зависит от контекста, но в большинстве случаев лучше использовать внедрение через конструктор - оно делает зависимости явными и обеспечивает неизменяемость.

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

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

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

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