Что используются для использования (1), (2), (3). Что это за и против, чтобы использовать его. В чем разница между ними?
Factory метод (1) vs factory (2) против шаблона Builder (3)
Ответ 1
Factory Шаблон метода
Этот шаблон очень похож на шаблон Factory, клиент также запрашивает Factory для определенного типа объекта из иерархии классов, но метод Create класса Factory делегирует создание определенного объекта к производным классам и возвращать объект класса типа, заданного клиентом. По сути, у вас есть одна точка контакта для создания нескольких объектов иерархии классов.
Вы можете подумать об этом как о том, чтобы отправиться в счетчик билетов (контролер) и просить билет, отдав предпочтение типу билетов (первоклассный, исполнительный или экономический). Пользователь не заинтересован в том, как генерируется билет, даже если в представлении объекта первый класс и билет экономики оба получены из класса базового билета.
Когда использовать
- Гибкость важна (низкая связь)
- Объекты могут быть расширены в подклассах
- Существует определенная причина, по которой один подкласс выбирается над другим - эта логика является частью метода Factory.
- Клиент делегирует обязанности подклассам в параллельных иерархиях.
Factory шаблон или простой Factory шаблон
Этот шаблон очень похож на шаблон метода Factory. Но в отличие от шаблона метода Factory этот шаблон немного проще. Вместо делегирования создания в подклассы метод Create самого Factory создает экземпляр требуемого типа и возвращает его.
Шаблон Builder
В шаблоне строителя сложная задача создания объектов инкапсулируется в класс или метод. Например, рассмотрите случай заказа еды на стойке быстрого питания. Еда обычно состоит из гамбургера, картофеля фри и напитка. Каждый предмет в еде имеет свой собственный процесс создания. Вместо того, чтобы клиент имел дело с процессом создания каждого элемента, эта задача обрабатывается счетчиком, в котором заказывается еда. Когда заказ размещается, человек в качестве счетчика берет на себя ответственность за создание еды, состоящей из трех предметов, и возвращает предметы в виде одного экземпляра еды клиенту.
В то время как другой клиент может попросить еду, которая поставляется с крупным картофелем фри и диетическим кокс. Опять же, лицо, входящее в счетчик заказов, несет ответственность за создание порядка, отличного от первого. С точки зрения клиента заказ всегда помещается и счетчик, за которым следует прием пищи.
Когда использовать
- Построение объекта - непростая задача.
- Подкомпоненты составляют каждый объект
- Существует потребность в более чем одном типе (с его раздельной частью) конечный объект должен запрашиваться клиентом. Это требование для разных конечных объектов может произойти, если не в одно и то же время, по крайней мере в разные моменты времени.
Дополнительная информация