posts - 10,  comments - 26,  trackbacks - 0

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.

 抽象工厂.png
由于对实现每个标准下的widget类型集合需要提供相应的WidgetFactory的实现,因此用户需要实例化每个标准下的工厂实现。

为解决这个问题,在Java中存在典型的实现方式。就是定义上图的上一部分,然后自己实现一个作为默认的;然后,在某个地方实现一个静态的方法,以实例化真实的WidgetFactory;接下来给应用开发人员提供一个标准的系统属性,比如-Djava.widget.factory=;这样可实现灵活的撤换。

posted on 2006-06-21 22:57 静静的流水 阅读(634) 评论(4)  编辑 收藏 引用 所属分类: Design Patterns

FeedBack:
# re: 设计范式笔记-AbstractFactory(一)
2006-06-22 10:39 | flyingxu
居然是java描述的,这里是cppblog,其实可以尽量用cpp描述的  回复  更多评论
  
# re: 设计范式笔记-AbstractFactory(一)
2006-06-22 23:45 | 白云
很好
值得学习!  回复  更多评论
  
# re: 设计范式笔记-AbstractFactory(一)
2006-06-23 18:14 | 静静的流水工作室
@flyingxu--谢谢你的提醒。  回复  更多评论
  
# re: 设计范式笔记-AbstractFactory(一)
2006-06-24 16:48 | 力为
国人不是都叫设计模式的嘛  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(1)

随笔分类(9)

随笔档案(10)

文章分类(7)

文章档案(7)

收藏夹(1)

Articles

C++ Template

Cpp News

Open Source C++ Compiler

友情链接-Blogs

搜索

  •  

积分与排名

  • 积分 - 8402
  • 排名 - 1263

最新评论