Sobes.tech
Назад к вопросам
Junior — Middle
65

В каких случаях лучше использовать сеттеры для установки зависимостей в вашем коде?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Сеттеры для установки зависимостей (setter injection) лучше использовать, когда:

  • Зависимость не является обязательной для корректной работы объекта, и её можно установить позже.
  • Нужно иметь возможность менять зависимость в течение жизненного цикла объекта.
  • Объект создаётся без всех зависимостей, и они добавляются после создания (например, при конфигурации).

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

public class Service {
    private Logger logger;

    public void setLogger(Logger logger) {
        this.logger = logger;
    }

    public void doWork() {
        if (logger != null) {
            logger.log("Work started");
        }
        // ...
    }
}