您的位置:首页 > 其它

设计模式学习(二)——抽象工厂模式

2014-03-07 18:57 211 查看
参考书——《HeadFirst设计模式》

定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

要理解抽象工厂,先得理解两个概念:产品族 &产品等级(这两个词,主要用来理解)


http://lavasoft.blog.51cto.com/62575/11674/



就用HeadFirst设计模式里的例子:原料工厂就是一个抽象工厂,纽约原料工厂、芝加哥原料工厂就是上图的具体工厂,它们都生产蛤蜊、生面团、干酪等(这些就是产品族);纽约临海,生产新鲜蛤蜊,芝加哥则生产冷冻蛤蜊,新鲜蛤蜊和冷冻蛤蜊就是一个产品等级。

抽象工厂和工厂方法的比较:

    都是负责创建对象的。但是:工厂方法利用的是继承,意味着,用工厂方法创建对象,需要扩展一个类,并实现它的工厂方法;而抽象工厂利用的是对象的组合。可以这么理解:工厂方法“潜伏”在抽象工厂里面——抽象工厂的方法经常以工厂方法的方式实现。

     

       最后:当需要创建产品族和想让制造的相关产品集合起来,可以考虑使用抽象工厂模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息