关于抽象工厂的学习理解
来源:互联网 发布:大赦国际 知乎 编辑:程序博客网 时间:2024/06/03 18:42
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46440915
抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。
抽象工厂模式与工厂方法模式的最大区别就在于工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构。
假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责任和创建这些产品对象的责任分割开来,可以引进抽象工厂模式。这样的话,消费产品的一方不需要直接参与产品的创建工作,而只需要向一个公用的工厂接口请求所需要的产品。
优点:
(1)分离接口和实现
客户端使用抽象工厂来创建需要的对象,而客户端根本就不知道具体的实现是谁,客户端只是面向产品的接口编程而已。也就是说,客户端从具体的产品实现中解耦。
(2)使切换产品族变得容易
因为一个具体的工厂实现代表的是一个产品族,比如上面例子的从A产品到B产品只需要切换一下具体工厂。
缺点:
(1)不太容易扩展新的产品
如果需要给整个产品族添加一个新的产品,那么就需要修改抽象工厂,这样就会导致修改所有的工厂实现类。
通过下面代码来熟悉抽象工厂模式:
不同的抽象工厂:
(不同的工厂用来生产不同的产品)
不同的具体工厂:
(实现抽象工厂的方法,返回具体生产的产品)
定义不同的产品接口:
(产品接口用来统一产品的生产方法)
不同的具体产品:
(具体的实现,在使用时声明抽象工厂,调用具体实现)
客户端实现:
抽象工厂的使用:
1.声明抽象工厂
2.具体实现抽象工厂
3.定义产品统一的生产方式
4.具体产品实现生产方式生产不同的产品
5.声明抽象工厂,调用不同的具体实现工厂,生产不同的产品。
测试结果:
A1产品生产A1
B1生产产品B1
- 关于抽象工厂的学习理解
- 抽象工厂的理解
- 抽象工厂模式的理解
- 抽象工厂模式的理解
- 抽象工厂的一点学习
- 抽象工厂的继续学习
- 对抽象工厂模式的简单理解
- 抽象工厂模式的个人理解
- 对抽象工厂模式的理解
- 我对抽象工厂模式的理解
- 简单工厂,工厂, 抽象工厂模式的学习与比较
- 简单工厂、工厂方法和抽象工厂的学习笔记
- 简单工厂模式和抽象工厂模式的通俗理解
- 简单工厂模式和抽象工厂模式的通俗理解
- 工厂模式和抽象工厂模式的理解
- spring学习中常用到的工厂,抽象工厂学习
- 抽象工厂学习小记
- 抽象工厂学习笔记
- GKBillowNoiseSource
- Harris角点检测变种之边缘提取
- 未完成--字典--《数据结构与算法》
- 在QT中使用irrlicht
- Android广告图片轮播控件banner
- 关于抽象工厂的学习理解
- Vision_字符串_KMP
- eclipse中查看项目代码所在硬盘中的文件目录的快捷方法
- oracle 更新update语句
- 嵌入式linux之Uboot和系统移植--基础
- C#往excel中插入特殊符号——HSSFRichTextString
- Neo4j数据库基础
- Android 系统无声问题分析
- 理解requireJS原理,实现一个简单的模块加载器