Junior — Middle
89
Dans quels cas est-il judicieux d'utiliser un constructeur pour transmettre des dépendances à une classe?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
Использование конструктора для передачи зависимостей (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.