抽象工厂模式——Abstract Factory
来源:互联网 发布:com的域名不能买永久吗 编辑:程序博客网 时间:2024/06/05 06:51
1、 抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
结构图如下:
AbstractProductA和AbstractProductB是两个抽象产品,之所以为抽象,是因为它们都有可能有两种不同的实现,如:产品1是用SQL数据库实现的、而产品2是由Access数据库实现的。
AbstractFactory是一个抽象工厂接口,它里面应该包含所有的产品创建的抽象方法。而ConcreteFactory1和ConcreteFactory2就是具体的工厂了。由这两个工厂产生具体的产品。如图中,ConcreteFactory1生产ProductA 1和ProductB 1这两个具体产品。
通常是在运行时刻再创建一个ConcreteFactory类的实例,这个具体的工厂再创建具有特定实现的产品对象,说,为创建不同的产品对象,客户端应该使用不同的具体工厂。
2、 抽象工厂的优缺点
优点,易于交换产品系列,由于具体工厂类,在一个应用中只需在初始化的时候出现一
次,这就使得改变一个应用的具体工厂变得非常容易,他只需改变具体工厂即可使用不同的产品配置。它让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操作实例,产品的具体类名也被具体的工厂的实现分离,不会出现在客户代码中。
缺点是当需要新增一个抽象产品时,不止需要新增3个类(AbstractProductC、ProductC1、ProductC1),而且需要修改3个类(ConcreteFactory、ConcreteFactory 1、ConcreteFactory 2)。
针对解决这一缺陷可以使用简单工厂+反射技术(由于篇幅过长不给出详述)。
- 抽象工厂模式——Abstract Factory
- 抽象工厂模式——Abstract Factory
- 设计模式——抽象工厂模式【Abstract Factory Pattern】
- Abstract Factory模式——抽象工厂模式
- 设计模式——抽象工厂模式(Abstract Factory)
- Java设计模式 —— 抽象工厂模式 (Abstract Factory)
- 软件设计模式——抽象工厂模式(Abstract Factory)
- 设计模式 —— 抽象工厂模式(Abstract Factory)
- 设计模式——抽象工厂模式(Abstract Factory)
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- 《设计模式》学习笔记——ABSTRACT FACTORY 抽象工厂
- 设计模式 Design Parttern ——抽象工厂Abstract Factory
- 对象创建模式——抽象工厂(Abstract Factory)
- 设计模式——(Abstract Factory)抽象工厂
- 设计模式——抽象工厂Abstract Factory
- 走进设计模式之——抽象工厂(Abstract Factory)
- 设计模式——抽象工厂(Abstract Factory Pattern)
- 【设计模式】——抽象工厂Abstract Factory
- 二维数组作为形参的参数传递问题
- 2011_08_19_Random Fern
- Android 磁盘管理 (1)
- 嵌入式系统开发:C语言中的位结构体
- iOS-Universal-Framework
- 抽象工厂模式——Abstract Factory
- linux下的/dev/shm/
- oracle中对于TableSpace理解
- C#枚举(enum)例子与简单使用说明
- Linux下安装与配置snmp服务
- 加一个throw()到函数中
- 没有为扩展名“.html”注册的生成提供程序
- Hibernate事务管理
- eclipse快捷键