【问题标题】:Abstract Factory & Façade, cooperative design patternAbstract Factory & Façade,协同设计模式
【发布时间】:2014-05-15 15:59:54
【问题描述】:
在外观模式的文档中,在相关模式的讨论中出现了以下语句:
“抽象工厂可以与 Façade 一起使用,以提供一个接口,用于以独立于子系统的方式创建子系统对象。”
抽象工厂如何以这种方式与 Façade 一起使用?
【问题讨论】:
标签:
design-patterns
facade
abstract-factory
【解决方案1】:
如果你先独立思考每个模式,你可能会自己找到联系。首先,想想抽象工厂模式。这种创建模式与创建允许创建对象族的接口有关。例如,您创建显示如何创建表单的界面。然后你有具体的实施者(实施者创建不同类型的按钮、标题等)。
现在,如果要创建的对象族构成一个复杂的子系统,那么这一切都会变得非常复杂。现在您可以使用外观模式(结构模式)来处理这种复杂性并创建一个更高级别的界面,假设接受一个参数作为表单类型并为外观的用户创建所有按钮、标题、设置它们的位置等因此他们不必处理/了解复杂子系统的详细信息。
【解决方案2】:
抽象工厂可用于创建外观模式的界面。抽象工厂 具有共同主题但未指定具体类的单个工厂。
Facade 隐藏了系统的复杂性,并为客户端提供了一个接口,客户端可以使用该接口访问系统。
要获得更清晰的图片,请点击此链接。Best Practice of Facade