首页 > 编程语言 > 详细

python设计模式 - 简单工厂 工厂模式 与 抽象工厂

时间:2020-12-17 21:03:06      阅读:53      评论:0      收藏:0      [点我收藏+]

咱们从一个实际例子聊起:说,一个大富豪想要买车,然后开车

场景1 :最最古老的时代啊,造车行业还没有统一,闭门造车,各类车的开法是不一样的,有些方向盘在左边,有些在右边。

    所以富豪买了福特车,就得学一遍福特车怎么开,开车时还得特意拿出说明书,买了奔驰,拿奔驰车的说明书,用户就很烦。于是造车业统一了开车方法,用户开啥车都一样,贼舒坦。

    这就是简单工厂模式,也即  面向对象  对  面向过程  的一次优化。优化了消费端,使得消费端不需要知道产品端的构造细节,也即富豪不需要操心拿到的是什么车,反正开就是了。

场景2:富豪是暂时爽了,但是造车老板还是苦不堪言,每个造车老板都养着自己一条生产线,要养活千百来个工人。

    他们心里清楚,我福特车和你个奔驰车也就零件不一样,装轮子、装发动机、连接这些零件的脏活累活其实没啥区别,他们奔驰哪有什么高明之处啊。于是老板们开始把组装工作外包给了国外去,都让国外同一个贼专业的装车厂来组装,自己就操心材料、车辆各类黑科技的开发就行。

    这就是工厂模式了,这次优化是单纯产品端的优化,用户没有任何感知的,将多个产品的统一构造逻辑抽象出去,使得造车老板们造车也轻松多了,分工更加明确与清晰。

场景3:富豪爽了一阵子普通小轿车,又不满足了,他想开赛车,甚至坦克。

    于是咨询造车老板,赛车、坦克不也是轮子啥的吗,我能像开车一样式儿得开不?造车老板稍作思索,行,那就再开个产业链。那这新兴的产业链,虽然好像是从0开始,但是他们有经验了,他们知道这次不能再闭门造“坦”  于是造坦前就制定了行业标准,制定完后,国外也根据这标准出来了专业的坦克组装厂,一切都顺利的开展下去了。。。。

    这“使用老经验”,其实就是抽象工厂的思想了,优化了新增产品族的情况下的代码复用率。试想下若造车老板们没有复用老经验,又是一通闭门造坦,效率会有多低。

    因此做个总结
| ---- | 简单工厂 | 工厂模式 | 抽象工厂 |
| 优点 | 解耦了产品端与用户端 | 优化了产品端 | 扩展产品端更多的产品族 |
| 缺点 | 产品端逻辑压力很大 | 不宜添加新的产品族 | 每次添加产品族都需要写 |

python设计模式 - 简单工厂 工厂模式 与 抽象工厂

原文:https://www.cnblogs.com/july401/p/14151759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!