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

来源:互联网 发布:sai是什么软件 编辑:程序博客网 时间:2024/06/12 22:37

参考书——《HeadFirst设计模式》


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

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

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

点击在新窗口查看全图


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



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

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

     

       最后:当需要创建产品族和想让制造的相关产品集合起来,可以考虑使用抽象工厂模式。





0 0
原创粉丝点击