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

Для чего нужно использовать сеттер при внедрении зависимости

Сеттеры для внедрения зависимостей (Setter Injection) обеспечивают гибкость, позволяя изменять зависимости объекта после его создания. Это полезно для:

  1. Опциональных зависимостей
  2. Тестирования (можно подменить mock-объект)
  3. Конфигурации после создания объекта

Пример:

java
public class OrderService {
    private PaymentGateway paymentGateway;
    
    // Setter injection
    public void setPaymentGateway(PaymentGateway paymentGateway) {
        this.paymentGateway = paymentGateway;
    }
    
    public void processOrder() {
        paymentGateway.charge();
    }
}

// В тесте:
OrderService service = new OrderService();
service.setPaymentGateway(mockPaymentGateway);

Но учти: сеттеры делают зависимости неявными и объект может остаться в невалидном состоянии, если зависимость не установлена. Лучше использовать конструктор для обязательных зависимостей.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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