Подтвердить что ты не робот

Factory метод (1) vs factory (2) против шаблона Builder (3)

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

4b9b3361

Ответ 1

Factory Шаблон метода

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

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

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

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


Factory шаблон или простой Factory шаблон

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


Шаблон Builder

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

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

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

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

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