设计模式-工厂模式

工厂模式和简单工厂模式:简单来说,工厂模式是简单工厂模式的进化版。

就像简单工厂里面提到的,查理想吃什么类型的时候,通过旺卡来获得想吃的糖果,但是如果查理想吃苹果味的和草莓味的巧克力棒,那这个时候怎么办?让旺卡找来苹果味、草莓味的巧克力棒制作师,然后给他制作。可是要是有几百种口味嘞?旺卡怎么可能记得来了?

这就是当工厂变大,功能变多的时候,简单工厂所遇到的瓶颈:

  1. 简单工厂当负责太多的功能对象转换的时候,会显得很冗杂
  2. 像写过的“开放-封闭原则”,那么每次功能添加的时候,都需要修改这个工厂,这不是很麻烦了吗?

由于这个原因,就需要引入其他的方法:

  1. 将巧克力的大类型,设置为一个工厂,然后里面有多个口味的制作师,这样旺卡就只需要记住这个大类就行了,如何他找来对应工厂的管理者,然后找来对应口味的制作师就可以了。
  2. 此时把旺卡当做一个接口,之后添加新的巧克力大类的时候,只需要继承这个接口实现功能即可。而有新的的口味产生,就只需要在工厂继承即可。

见下图(注:对应代码会一一补上,因为vs2019终于可以用了):

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值