设计模式学习(二)——抽象工厂模式
2014-03-07 18:57
211 查看
参考书——《HeadFirst设计模式》
定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
要理解抽象工厂,先得理解两个概念:产品族 &产品等级(这两个词,主要用来理解)
http://lavasoft.blog.51cto.com/62575/11674/
就用HeadFirst设计模式里的例子:原料工厂就是一个抽象工厂,纽约原料工厂、芝加哥原料工厂就是上图的具体工厂,它们都生产蛤蜊、生面团、干酪等(这些就是产品族);纽约临海,生产新鲜蛤蜊,芝加哥则生产冷冻蛤蜊,新鲜蛤蜊和冷冻蛤蜊就是一个产品等级。
抽象工厂和工厂方法的比较:
都是负责创建对象的。但是:工厂方法利用的是继承,意味着,用工厂方法创建对象,需要扩展一个类,并实现它的工厂方法;而抽象工厂利用的是对象的组合。可以这么理解:工厂方法“潜伏”在抽象工厂里面——抽象工厂的方法经常以工厂方法的方式实现。
最后:当需要创建产品族和想让制造的相关产品集合起来,可以考虑使用抽象工厂模式。
定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
要理解抽象工厂,先得理解两个概念:产品族 &产品等级(这两个词,主要用来理解)
http://lavasoft.blog.51cto.com/62575/11674/
就用HeadFirst设计模式里的例子:原料工厂就是一个抽象工厂,纽约原料工厂、芝加哥原料工厂就是上图的具体工厂,它们都生产蛤蜊、生面团、干酪等(这些就是产品族);纽约临海,生产新鲜蛤蜊,芝加哥则生产冷冻蛤蜊,新鲜蛤蜊和冷冻蛤蜊就是一个产品等级。
抽象工厂和工厂方法的比较:
都是负责创建对象的。但是:工厂方法利用的是继承,意味着,用工厂方法创建对象,需要扩展一个类,并实现它的工厂方法;而抽象工厂利用的是对象的组合。可以这么理解:工厂方法“潜伏”在抽象工厂里面——抽象工厂的方法经常以工厂方法的方式实现。
最后:当需要创建产品族和想让制造的相关产品集合起来,可以考虑使用抽象工厂模式。
相关文章推荐
- 抽象工厂模式 - 设计模式学习
- 设计模式学习笔记--抽象工厂模式
- 设计模式学习(创建型模式)—抽象工厂模式(Abstract Factory)
- Java设计模式学习记录-抽象工厂模式
- 设计模式C++学习笔记之七(AbstractFactory抽象工厂模式)
- java学习笔记-设计模式4(抽象工厂模式)
- 设计模式学习笔记——抽象工厂模式
- php设计模式学习系列(四)--抽象工厂模式
- Java学习笔记---设计模式之抽象工厂模式
- 设计模式学习——抽象工厂模式(Abstract Factory Pattern)
- 抽象工厂模式 - 设计模式学习
- Java研究之学习设计模式-抽象工厂模式详解
- 十一、抽象工厂模式——设计模式学习笔记
- java设计模式学习笔记--抽象工厂模式
- Java设计模式(3)之工厂方法模式&抽象工厂模式学习总结
- 设计模式学习--抽象工厂模式
- 设计模式学习笔记——抽象工厂模式
- 设计模式学习笔记-抽象工厂模式
- 设计模式学习之抽象工厂模式(二)<反射+配置文件>
- 设计模式学习03—抽象工厂模式