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.