Abstract Factory
,这是一个
Object Creational
范式。
原文
Intent
部分:
“
…without specifying their concrete classes
”,即对使用这个对象的用户,不直接提供
new
操作;
一个对象的类型支持多种标准;并满足用户在多种标准之间自由地从一种标准转换成另外一种标准。
为了实现这个范式,需要为将要实现的
widget
集合定义一个总的工厂抽象类,即:
AbstractFactory
,同时在这个工厂类中为每个
widget
定义一个类似于
CreateXXX
(
Create
表示要执行的活动,
XXX
表示被创建的
widget
的类型名称)的方法;并对要实现的
widget
集合中的每个
widget
定义一个抽象类。
原文
Motivation
部分:
“
There’s also an abstract class for each kind of widget, and concrete subclasses implement widgets for specific look-and-feel standards.
”
由于对实现每个标准下的widget类型集合需要提供相应的WidgetFactory的实现,因此用户需要实例化每个标准下的工厂实现。
为解决这个问题,在Java中存在典型的实现方式。就是定义上图的上一部分,然后自己实现一个作为默认的;然后,在某个地方实现一个静态的方法,以实例化真实的WidgetFactory;接下来给应用开发人员提供一个标准的系统属性,比如-Djava.widget.factory=;这样可实现灵活的撤换。
posted on 2006-06-21 22:57
静静的流水 阅读(634)
评论(4) 编辑 收藏 引用 所属分类:
Design Patterns