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

本文介绍了设计模式中的抽象工厂模式,通过实例解释了产品族和产品等级的概念,并对比了抽象工厂与工厂方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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

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

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

点击在新窗口查看全图


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



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

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

     

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值