设计模式学习(二)——抽象工厂模式
来源:互联网 发布:sai是什么软件 编辑:程序博客网 时间:2024/06/12 22:37
参考书——《HeadFirst设计模式》
定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
要理解抽象工厂,先得理解两个概念:产品族 &产品等级(这两个词,主要用来理解)
http://lavasoft.blog.51cto.com/62575/11674/
就用HeadFirst设计模式里的例子:原料工厂就是一个抽象工厂,纽约原料工厂、芝加哥原料工厂就是上图的具体工厂,它们都生产蛤蜊、生面团、干酪等(这些就是产品族);纽约临海,生产新鲜蛤蜊,芝加哥则生产冷冻蛤蜊,新鲜蛤蜊和冷冻蛤蜊就是一个产品等级。
抽象工厂和工厂方法的比较:
都是负责创建对象的。但是:工厂方法利用的是继承,意味着,用工厂方法创建对象,需要扩展一个类,并实现它的工厂方法;而抽象工厂利用的是对象的组合。可以这么理解:工厂方法“潜伏”在抽象工厂里面——抽象工厂的方法经常以工厂方法的方式实现。
最后:当需要创建产品族和想让制造的相关产品集合起来,可以考虑使用抽象工厂模式。
0 0
- 设计模式学习(二)——抽象工厂模式
- 设计模式学习—抽象工厂模式
- 设计思想学习—抽象工厂模式
- 设计模式之(二)——抽象工厂模式
- java设计模式(二)——抽象工厂模式
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- JAVA设计模式学习6——抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 设计模式学习3——抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 十一、抽象工厂模式——设计模式学习笔记
- 《设计模式》学习笔记4——抽象工厂模式
- 设计模式学习03—抽象工厂模式
- 设计模式学习笔记—抽象工厂模式
- java设计模式学习—抽象工厂模式
- Head First 设计模式学习——简单工厂方法-工厂方法模式-抽象工厂模式
- 设计模式<二>-抽象工厂
- 《自己动手写操作系统》第三章 pmtest9源码解析——中断处理程序
- <c:foreach>用法
- Android Junit
- 程序提供向后兼容性
- 编辑错误:error C2018: unknown character '0xa1'
- 设计模式学习(二)——抽象工厂模式
- Failing over to RSL framework_4.6.0.23201.swz
- 编译器编译main.cpp
- Objective-c的内存管理MRC与ARC
- Linux 查看进程和删除进程
- Java运行JS库 -- Jsoup
- Linux下常用SVN命令
- 文件的文件夹
- android获取屏幕的宽、高