抽象工厂(AbstractFactory)
来源:互联网 发布:java base64 utf8 编辑:程序博客网 时间:2024/06/08 15:41
本章节部分内容摘录自李英军等译的《设计模式》(虽然大部分文字是反复推敲才明白意思),同时也包含了笔者的学习心得。
1.意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
2.适用性
。一个系统要独立于它的产品的创建、组合和表示(它的产品表示工厂中创建的产品,组合体现了这些产品的相关性和依赖性,表示是指产品的具体实现)
。一个系统要由多个产品系列中的一个来配置时(有多个具体的工厂,但同一时刻只使用一个)
。当你要强调一系列相关的产品对象的设计,以便进行联合使用
。当你提供一个产品类库,而只想显示他们的接口而不是实现
3.结构
。AbstractFactory
——声明一个创建抽象产品对象的操作接口。
。ConcreteFactory
——实现创建具体产品对象的操作。
。AbstractProduct
——定义一个将被相应的具体工厂创建的产品对象。
——实现AbstractProduct接口。
。Clinet
——仅使用由AbstractFactory和AbstractProduct类声明的接口。
4.优缺点
。分离了具体的类:工厂封装创建产品对象的责任和过程,它将客户与类的实现分离
。使得易于交换产品系列
。有利于产品的一致性
。难以支持新种类的产品
5.实现
。创建抽象工厂基类
。创建具体的抽象工厂
。创建抽象工厂的工厂方法(有点绕,抽象工厂是一种设计模式,工厂方法也是一种设计模式)
。创建产品基类
。创建具体的产品
。创建产品的工厂方法
。如果有必要,把抽象工厂添加到单件中(单件是一种设计模式)
6.代码
按自己理解编写的,编码工具VS2008。
地址:设计模式之抽象工厂案例代码
阅读全文
0 0
- 抽象工厂 AbstractFactory
- 抽象工厂 abstractFactory
- AbstractFactory抽象工厂模式
- AbstractFactory抽象工厂模式
- AbstractFactory抽象工厂模式
- 抽象工厂(AbstractFactory)
- 抽象工厂模式 AbstractFactory
- 抽象工厂(AbstractFactory)
- 设计模式--抽象工厂(AbstractFactory)
- 学习笔记----------abstractfactory抽象工厂
- 03.抽象工厂模式--AbstractFactory
- AbstractFactory——抽象工厂
- 03.抽象工厂模式--AbstractFactory
- 抽象工厂模式(AbstractFactory)
- 3.AbstractFactory-抽象工厂模式
- 设计模式 - AbstractFactory抽象工厂
- 3.AbstractFactory-抽象工厂模式
- C#设计模式之抽象工厂(AbstractFactory)
- 决策树随机森林adaboost理论实战
- Eclipse自带的各种bundle的添加
- fis3调试与发布
- C++基础-模板编程
- 大数据分布式集群搭建(1)
- 抽象工厂(AbstractFactory)
- HDU 1372 Knight Moves(BFS)
- POJ2139 解题报告
- 替换数据库中所有的表中含有某个字符串的字符
- spring boot 事务
- 前端JS知识要点总结(9)
- DOM的应用
- 通过ext3grep恢复误删除的文件和表
- Eclipse中使用JUnit4进行单元测试