фабричный метод (1) против фабричного (2) против строительного (3) шаблона - PullRequest
10 голосов
/ 05 февраля 2012

Что такое варианты использования (1), (2), (3).Что является за и против, чтобы использовать это.В чем разница между ними?

1 Ответ

30 голосов
/ 24 февраля 2012

Шаблон метода фабрики

Этот шаблон очень похож на шаблон фабрики, клиент также запрашивает у фабрики конкретный тип объекта из иерархии классов, но метод Create класса фабрики делегирует создание конкретного объекта производному классы и возвращают объект класса типа, заданного клиентом. По сути, у вас есть единая точка контакта для создания нескольких объектов иерархии классов.

Вы можете думать об этом, как о переходе в кассу билета на самолет (диспетчер) и запросе билета, указав предпочитаемый тип билета (первый класс, представительский или эконом). Пользователь не заботится о том, как генерируется билет, даже если в представлении объекта первый класс и билет эконом-класса получены из базового класса билета.

Когда использовать

  • Гибкость важна (низкая связь)
  • Объекты могут быть расширены в подклассах
  • Существует определенная причина, по которой один подкласс будет выбран вместо другого - эта логика является частью фабричного метода.
  • Клиент делегирует обязанности подклассам в параллельных иерархиях.


Фабричный шаблон или Простой фабричный шаблон

Этот шаблон очень похож на шаблон фабричного метода. Но в отличие от шаблона фабричного метода, этот шаблон немного проще. Вместо того, чтобы делегировать создание подклассам, метод Create самой фабрики создает экземпляр требуемого типа и возвращает его.


Образец строителя

В шаблоне компоновщика сложная задача создания объектов заключена в классе или методе. Например, рассмотрим случай заказа еды на стойке быстрого питания. Еда обычно состоит из гамбургера, картофеля фри и напитка. Каждый элемент в еде имеет свой собственный процесс создания. Вместо того, чтобы клиенту приходилось иметь дело с процессом создания каждого предмета, эта задача обрабатывается счетчиком, в котором заказывается еда. Когда заказ размещен, лицо в качестве прилавка берет на себя ответственность за создание блюда, состоящего из трех предметов, и возвращает его в качестве отдельного экземпляра еды клиенту.

В то время как другой клиент может попросить еду, которая идет с большой картошкой фри и диетическим колой. Опять же, человек за счетчиком заказов отвечает за создание порядка, отличного от первого. С точки зрения покупателя, заказ всегда размещается и счетчик, за которым следует возвращаемая еда.

Когда использовать

  • Строительство объекта - не простая задача
  • Подкомпоненты составляют каждый объект
  • Существует необходимость в том, чтобы клиенту требовался более чем один вид (с разграничительной частью в нем). Эта потребность в различных конечных объектах может возникнуть, если не одновременно, по крайней мере, в разные моменты времени.

Дополнительная информация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...