您现在的位置是: 软件 > 开发者网络 > 程序方舟 > Java专栏 > 正文


-明明白白注册表工具
-PHP优化与安全
-Dreamweaver MX 新功能体验
-Visual Basic 图形及图像处理

爪哇语言抽象工厂创立性模式介绍
2001-12-03· ·阎宏 ··yesky

1 2 3 4 5  下一页


  工厂模式有简单工厂模式,工厂方法模式和抽象工厂模式几种形态。其中简单工厂模式和工厂方法模式已经在前面作过介绍。在这里,我们来介绍抽象工厂模式。

  抽象工厂模式是所有形态的工厂模式中最为抽象和最具广泛性的一种形态。

  抽象工厂模式的定义

  抽象工厂模式是工厂方法模式的进一步扩广化和抽象化。我们给出抽象工厂模式的类图定义如下。


       图1. 抽象工厂模式的类图定义

  从上图可以看出,简单工厂模式涉及到以下的角色

   抽象工厂(AbstractFactory)类或接口

   担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创立对象的工厂类必须实现这个接口,或继承这个类。

   实工厂类 (Conrete Factory)

   担任这个角色的是与应用程序紧密相关的,直接在应用程序调用下,创立产品实例的那样一些类。

   抽象产品 (Abstract Product)

   担任这个角色的类是工厂方法模式所创立的对象的父类,或它们共同拥有的接口。

   实产品 (Concrete Product)

   担任这个角色的类是工厂方法模式所创立的任何对象所属的类。

  怎么这个类图和工厂方法模式的类图看起来是一样的?

  是的,图是一样的,但是含义有很大的不同。必须指出,在抽象工厂模式中,抽象产品 (AbstractProduct) 可能是一个或多个,从而构成一个或多个产品族(Product Family)。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。在上面的类图中,只给出了一个产品族,相当于位图中的一个点,而完整的位图应当是三维的,如下图。



     图2. 抽象工厂模式的位图
 
  从位图可以清楚地看到,与纸面垂直的数轴,即第三维轴,是代表产品族的数轴。上面的位图中展示的是有两个产品族,族A和族B的情形。

  在只有一个产品族时,第三维就坍缩掉,位图也就只剩下两维。这时抽象工厂模式就退化得与工厂方法模式一模一样。

1 2 3 4 5  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 设计模式之State
 设计模式之Facade(外观)
 设计模式之State
 设计模式之Observer
 Java模式开发之责任链模式
 J2EE中的设计模式
 Java通讯程序一例
 Java Swing中的键盘事件处理
 JavaMail快速入门
 J2EE平台架构上开发CRM的技术过程控制
 用JAVA实现线程等待提示框
 爪哇语言结构性模式之变压器模式介绍
 用JAVA实现线程等待提示框
 优化Java applets 加载过程
 爪哇语言工厂方法创立性模式介绍
 爪哇语言简单工厂创立性模式介绍
 爪哇语言单态创立性模式介绍
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!