城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

模式(四-3):抽象工厂(Abstract Factory)模式

Posted on 2008-07-22 17:22 sailor 阅读(143) 评论(0)  编辑  收藏 所属分类: 模式
定义
    提供一个接口,用于创建相关或相依赖对象的家族,而不需要明确指定具体类。

原则
    依赖抽象,而不要依赖具体类
    

实用性

  1,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。

  2,这个系统的产品有多于一个的产品族

  3,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。

角色

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


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

   抽象工厂(AbstractFactory)类或接口

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

   实工厂类 (Conrete Factory)

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

   抽象产品 (Abstract Product)

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

   实产品 (Concrete Product)

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


实例

 抽象工厂模式应用于小花果园系统中。三种不同的背景颜色可以区分工厂类,蔬菜类(第一产品族),和水果类的类图(第二产品族)

只有注册用户登录后才能发表评论。


网站导航: