Sobes.tech
Back to questions
Junior — Middle
60

В каких случаях целесообразно использовать конструктор для передачи зависимостей в класс?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Использование конструктора для передачи зависимостей (constructor injection) целесообразно, когда:

  • Зависимости обязательны для корректной работы класса и должны быть инициализированы сразу при создании объекта.
  • Нужно обеспечить неизменяемость зависимостей после создания объекта.
  • Требуется явная декларация зависимостей класса, что улучшает читаемость и тестируемость кода.

Например, если класс зависит от сервиса для работы с данными, то через конструктор можно передать этот сервис, что позволит легко подменять его на мок-объекты в тестах.

public class UserService {
    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public User getUserById(String id) {
        return userRepository.findById(id);
    }
}

Таким образом, конструктор гарантирует, что UserService всегда будет иметь необходимую зависимость UserRepository.