Sobes.tech
Junior — Middle
104

Дар кадҳо истифодаи setterҳо барои насб кардани вобастагиро дар коди шумо беҳтар аст?

Ширкатҳо дар куҷо пурсиданд
СБЕРСБЕР

Ҷавоб аз AI

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");
        }
        // ...
    }
}