Posted on 2008-07-22 17:22
sailor 阅读(143)
评论(0) 编辑 收藏 所属分类:
模式
定义
提供一个接口,用于创建相关或相依赖对象的家族,而不需要明确指定具体类。
原则
依赖抽象,而不要依赖具体类
实用性
1,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。
2,这个系统的
产品有多于一个的产品族。
3,
同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
角色
图1. 抽象工厂模式的类图定义 |
从上图可以看出,简单工厂模式涉及到以下的角色
抽象工厂(AbstractFactory)类或接口
担任这个角色的是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创立对象的工厂类必须实现这个接口,或继承这个类。
实工厂类 (Conrete Factory)
担任这个角色的是与应用程序紧密相关的,直接在应用程序调用下,创立产品实例的那样一些类。
抽象产品 (Abstract Product)
担任这个角色的类是工厂方法模式所创立的对象的父类,或它们共同拥有的接口。
实产品 (Concrete Product)
担任这个角色的类是工厂方法模式所创立的任何对象所属的类。
实例
抽象工厂模式应用于小花果园系统中。三种不同的背景颜色可以区分工厂类,蔬菜类(第一产品族),和水果类的类图(第二产品族)