《设计模式》学习笔记——ABSTRACT FACTORY 抽象工厂
2010-03-03 20:32
239 查看
1.1 ABSTRACT FACTORY 抽象工厂
1、 意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
2、 动机
“客户仅与抽象定义的接口交互,而不使用特定的具体类的接口。”
这里的主要的思想是封装对象的创建的过程。客户端可以不需要知道具体要创建那些对象,而只需要知道创建某一系列的对象所用到的“工厂对象”即可。
3、 适用性
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
4、 结构
5、 参与者
AbstractFactory:创建一系列对象的抽象类。
ConcreteFactory:实现具体创建产品对象的操作。
AbstractProduct:为一类产品对象声明一个接口。
ConcreteProduct:定义一个被相应的具体工厂创建的对象;实现AbstractProduct接口。
Client:仅使用AbstractFactory和AbstractProduct类声明的接口。
6、 协作
在运行时刻,创建一个ConcreteFactory实例,它创建具有特定实现的对象。为创建不同的对象,客户应使用不同的具体工厂。
AbstractFactory将具体对象的创建延迟到它的子类ConcreteFactory中。
7、 效果
1)
它分离了具体的类:一个工厂封装创建产品的责任和过程,它将客户和类的实现分离。客户通过抽象接口操作实例。产品的类名也在具体工厂实现中分离,他们不出现在客户代码中。
2) 它使得易于交互产品系列。
3) 它有利于产品的一致性。
4) 难于支持新的种类。
相关文章推荐
- 设计模式-创建型-抽象工厂
- 设计模式(五)——抽象工厂
- 设计模式一(工厂方法、抽象工厂、单例)
- 设计模式C++达到 3.抽象工厂
- 《JAVA与模式》学习笔记(二)工厂模式,抽象工厂
- 《设计模式 系列》- 创建型模式 - 抽象工厂
- 对于抽象工厂的封装
- 设计模式练习--工厂模式
- 抽象工厂和工厂模式的区别
- 常用设计模式总结--抽象工厂
- 设计模式 抽象工厂 Abstract Factory
- 浅谈设计模式之一——简单工厂、工厂、抽象工厂
- 抽象工厂举例
- 如何利用抽象工厂更换数据库
- 23种设计模式-(AbstractFactory)抽象工厂
- 简单工厂,工厂,抽象工厂
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别 (转)
- 创建模式之一:抽象工厂(Abstract Factory)续2
- 抽象工厂设计模式