设计模式学习——Abstract Factory(抽象工厂)

意图:需要为特定的客户(或情况)提供对象组。

问题:需要实例化一组相关的对象。

解决方法:协调对象组的创建。提供一种方式,将如何执行对象实例化的规则从使用这些对象的客户对象提取出来。

参与者与协作者:AbstractFactory为如何创建对象组的每个成员定义接口。一般每个组都由独立的ConcreteFactory进行创建。

效果:这个模式将“使用哪些对象”的规则与“如何使用这些对象”的逻辑分离开来。

实现:定义一个抽象类来指定创建哪些对象。然后为每个组实现一个具体类。可以用表或文件完成同样的任务。

结构图:

小结:
1. 首先,找出实例化规则,定义一个带接口的抽象类,其中的接口为每种需要实例化的对象提供一个方法。
2. 然后,从这个类为每个组实现具体的类。
3. 客户对象使用具体工厂对象创建所需的服务对象。

摘自《设计模式解析(第2版)》第11章

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。