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