通过举例比喻来理解:简单工厂、工厂方法与抽象工厂

用例子来理解:

顾客去饭店吃饭,跟服务员说,我需要一杯果汁,服务员(工厂)便可提供一杯果汁,这就是简单工厂模式。

后来饮料品种越来越多,饭店每增加一款饮料都需要让服务员知晓,否则顾客说的时候,服务员就无法提供(这也就是对工厂类的修改),于是饭店老板,直接买了饮料机(专职工厂),顾客想喝什么,自己去饮料机取,饭店以后想增加饮料,只要增加饮料机即可。这里有两个好处,1)顾客不需要说话了,走到某台饮料机,就代表需要相应饮料。2)增加饮料机无需对服务员进行培训(避免修改),只需增加饮料机即可。这就是工厂方法

至于抽象工厂模式,可以用套餐饭来理解,饭店制定了一套标准(抽象工厂,具体工厂需要遵循的工厂接口),所有的套餐饭(具体工厂)必须遵循该标准,比如这个抽象标准可能是:1、需要有饭、2、需要有菜、3、需要有一杯果汁,于是有了第一个套餐饭(具体工厂):家常大米饭+鱼香肉丝+橙汁,我们称之为套餐A,那顾客点套餐A,即可获得刚才所说产品。当然这里面的米饭、菜、以及果汁(具体产品对象),也需要遵守相应的产品规则(产品接口),以保证顾客能吃到放心食品

在这里我们看到,对于抽象工厂是无需指定具体的饭,菜,果汁,但是这些饭、菜、果汁确实相互依赖的,这也是抽象工厂的意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 

接口签名与实战课:https://edu.csdn.net/course/detail/29850

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

njkd5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值