Внедрение зависимостей в поля и функции-сеттеры
Не всегда бывает удобно пихать желуди прямо в конструктор. Например, желуди могут так сильно зависеть друг от друга, что образуют циклическую зависимость. Как Заяц-Волк, только Желудь-Желудь. В таком случае внедрить зависимости через конструктор не получится. На помощь нам придут внедрение желудей через поля и функции, принимающие значения.
&Пластилин
Перем Логин;
Перем Пароль;
&Пластилин
Процедура УстановитьПароль(Значение) Экспорт
Пароль = Значение;
КонецПроцедуры
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
При получении желудя Обновлятор1С
зависимость Логин
будет внедрена в поле напрямую, а зависимость Пароль
установлена через процедуру УстановитьПароль
.
Как и в случае с подстановкой желудей в конструктор, имя конкретного желудя может быть переопределено в параметре аннотации &Пластилин
. По умолчанию имя внедряемого желудя берется либо из имени поля ("Логин") либо из имени метода, из которого отбрасывается префикс "Установить": УстановитьПароль
->
Пароль
.