Создатель экземпляров класса (Creator) - GRASP
| Проблема | "Кто" должен отвечать за создание экземпляров класса. | |
| Решение | Назначить классу В обязанность создавать объекты другого класса А | |
| Рекомендации | Логично использовать паттерн если класс В содержит, агрегирует, активно использует и т.п. объекты класса А. | |
| Пример | См. пример к паттерну "Информационный эксперт" в п. , необходимо определить, какой объект должен отвечать за создание экземпляра "ТоварПродажа". Логично, чтобы это был объект "Продажа", поскольку он содержит (агрегирует) несколько обьектов "ТоварПродажа".
![]() | |
| Преимущества | Использование этого паттерна не повышает связанности, поскольку созданный класс, как правило, виден только для класса - создателя. | |
| Недостатки | Если процедура создания объекта достаточно сложная (например выполняется на основе некоего внешнего условия), логично использовать паттерн "Абстрактная Фабрика", см. , то есть, делегировать обязанность создания обьектов специальному классу. |
