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

Когда будешь применять конструктор для внедрения зависимости

Конструктор для внедрения зависимости (Constructor Injection) стоит использовать, когда зависимость обязательна для работы класса. Это обеспечивает:

  1. Неизменяемость (immutability) - зависимости можно сделать final
  2. Явную сигнатуру класса - видно все зависимости
  3. Легкое тестирование - зависимости можно передать в тестах

Пример:

java
public class OrderService {
    private final PaymentGateway paymentGateway;
    
    public OrderService(PaymentGateway paymentGateway) {
        this.paymentGateway = paymentGateway;
    }
    
    public void processOrder(Order order) {
        paymentGateway.charge(order.getAmount());
    }
}

Не используй конструктор, если:

  • Зависимостей много (более 4-5) - лучше разделить класс
  • Зависимости опциональны - используй setter injection
  • Есть циклические зависимости - требует рефакторинга
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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