Встречается на собеседованиях • сегодня
Какой знаешь нерекомендуемый способ внедрения зависимости
Использование Service Locator считается антипаттерном, так как скрывает зависимости и усложняет тестирование. Вместо явного внедрения через конструктор/метод, класс запрашивает зависимости из глобального контейнера, что нарушает принцип инверсии управления (IoC).
java
// Плохой пример: Service Locator
public class OrderService {
private PaymentProcessor getPaymentProcessor() {
return ServiceLocator.getService(PaymentProcessor.class);
}
}Проблемы:
- Неявные зависимости (не видно в сигнатуре класса).
- Сложность мокирования в тестах.
- Зависимость от глобального состояния.
Лучше использовать DI через конструктор:
java
// Рекомендуемый способ
public class OrderService {
private final PaymentProcessor processor;
public OrderService(PaymentProcessor processor) {
this.processor = processor;
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы