python观察者模式 多线程_10分钟学Python设计模式|观察者模式

原标题:10分钟学Python设计模式|观察者模式

这是一篇以前的设计模式的文章,零零散散,最近的项目在重构一些代码,觉得设计模式还是很重要的,有兴趣的可以看看!设计模式的看起来招式很简单,但是设计非常精妙,需要反反复复的咀嚼才能掌握它的精髓!

程序员小马刚毕业来到上海闯荡,开始了魔都的生活,每个月只有可怜的一点工资,因为刚毕业,好不容易找到一份工作,月薪4500块。为省房租,所以住的比较远,每天要坐两个小时的地铁上下班!

小马是一个吃货,喜欢吃喜欢旅游的,下班后躺在床上,想着如果这次项目完成了:

如果能发5000块工资就可以约隔壁部门的大美女吃一顿大餐,

如果发了6000块就可以去买双球鞋,原来那双都破个洞了

如果发了7000块就可以去趟杭州玩几天,西湖美景美如画

687d5bf95fe248d4bd65713a52d1aaf9.jpeg

想着想着,心里美滋滋的,干脆自己写一个程序提醒我多好啊!光说不练假把式,小马开始动手写Python代码...

用简单的观察者模式

小马虽然是刚毕业的菜鸟码农,但是上学的时候还是很努力的,记得老师曾经教给他一些编写代码的思想,想想代码不能写的太烂啊,要方便扩展,这次干脆用老师教给我们的设计模式来做过!

观察者模式大部分都是一对多的关系,可以多个观察者对象同时监听某一个对象!这里我们有两个模式,吃货模式和旅游模式,而我们的工资就是监听对象,一旦工资发出来,我们根据工资的数目来判断,我们是去吃大餐,还是去旅游,听起来很简单吧,我上代码:

1).监听对象

e047b1e73fe448be85c65d0424fe87ba.jpeg

工资就是我们设计的监听的类,里面几个函数,对工资进行设定的get和set方法

还有两个很重要的方法,一个是增加观察者,一个是通知(一旦满足某一些条件,就可以通过这个接口立刻通知)

2).两个观察者

首先抽象出一个观察者的父类,里面有一个update通知函数

cffc9c0f43e246a0b3186971d7041a6b.jpeg

接着写吃货模式,我们重写update函数,把吃大餐和买新鞋的逻辑放在里面

9d32695dc9ce4d73b676061ada06dfcc.jpeg

最后写旅游模式,也是要重写update函数,把旅游的逻辑放在里面,大于7000块就可以出去浪啦~~

e1f56b2f17e54c1192c8b4cb0527d167.jpeg

写个测试代码试一下

上面写了这么多,我们用代码来跑一下看看结果如何

e59822f5be79410887acb955fb1263c2.jpeg

初始化3个对象,工资对象salary,吃货对象eatObser和旅游对象travleObser

工资对象是被监听的,我们会增加两个观察者eatObser和travleObser

最后看一下8月份的工资,我们随机一组工资看一下:

Currently salary is: 5500

>>可以去约隔壁组的莉莉mm,吃顿大餐了,哈哈!

Currently salary is: 6000

>>原来的那双球鞋都破了,总有可以去买双新的了

Currently salary is: 6500

>>原来的那双球鞋都破了,总有可以去买双新的了返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值