Создатель (Creator)¶
Creator рекомендует поручать создание объекта тому, кто тесно связан с ним по данным, композиции или жизненному циклу.
Опора на ООП¶
Creator опирается на инкапсуляцию и низкую связанность: объект создается там, где уже есть все данные для корректной инициализации.
Что показывает пример на 1С¶
Documents.SalesOrderсам создаетPostingContext.- Документ уже содержит организацию, склад и строки товаров, поэтому именно он может корректно подготовить контекст проведения.
- Клиент не собирает этот объект вручную из разрозненных полей.
Пример¶
Где полезен в 1С¶
- при создании контекстов проведения, печати, обмена и расчета;
- когда один объект агрегирует данные, нужные для инициализации другого;
- когда хочется убрать внешнюю ручную сборку служебных структур.
Когда принцип применяют неправильно¶
- когда создатель ничего не знает о создаваемом объекте и просто "назначен" случайно;
- когда создание требует зависимостей из другой подсистемы;
- когда объект начинает производить слишком много чужих сущностей и превращается в фабрику всего подряд.