【发布时间】:2012-02-05 11:51:54
【问题描述】:
什么是使用(1),(2),(3)的用例。使用它有什么优缺点。它们有什么区别?
【问题讨论】:
-
作业问题?我建议拿起四本书的帮派c2.com/cgi/wiki?DesignPatternsBook
标签: oop design-patterns
什么是使用(1),(2),(3)的用例。使用它有什么优缺点。它们有什么区别?
【问题讨论】:
标签: oop design-patterns
此模式与工厂模式非常相似,客户端也向工厂请求类层次结构中的特定类型的对象,但 工厂类的 Create 方法将特定对象的创建委托给派生classes 并返回客户端要求的类型的类的对象。本质上,您有一个单一的联系点来创建类层次结构的多个对象。
您可以将其视为前往机票柜台(控制器)并通过提供您对机票类型(头等舱、行政或经济舱)的偏好来索取机票。用户并不关心机票是如何生成的,即使在对象表示中头等舱和经济舱机票都是从基本机票类别派生的。
何时使用
这种模式与工厂方法模式非常相似。但与工厂方法模式不同的是,这种模式要简单一些。 Factory 的 Create 方法本身不是将创建委托给子类,而是创建所需类型的实例并返回它。
在构建器模式中,创建对象的复杂任务被封装在一个类或方法中。例如,考虑在快餐柜台点餐的情况。这顿饭通常包括一个汉堡、薯条和一杯饮料。餐食中的每一道菜都有自己的创作过程。此任务无需客户处理每个项目的创建过程,而是由订餐的柜台处理。下订单后,作为柜台的人负责创建由三项组成的餐点,并将这些项目作为餐点的单个实例返回给客户。
而另一位顾客可能会要求一顿配大薯条和健怡可乐的餐点。同样,订单柜台的人负责建立与第一个订单不同的订单。从客户的角度来看,总是下订单,然后是柜台,然后是退回的饭菜。
何时使用
更多信息
【讨论】: