Обзор паттернов проектирования

       

Создатель экземпляров класса (Creator) - GRASP


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

Преимущества Использование этого паттерна не повышает связанности, поскольку созданный класс, как правило, виден только для класса - создателя.
Недостатки Если процедура создания объекта достаточно сложная (например выполняется на основе некоего внешнего условия), логично использовать паттерн "Абстрактная Фабрика", см. , то есть, делегировать обязанность создания обьектов специальному классу.



Содержание раздела