菜鸟学Python出品
Leoxin原创
程序员小马刚毕业来到上海闯荡,开始了魔都的生活,每个月只有可怜的一点工资,因为刚毕业,好不容易找到一份工作,月薪4500块。为省房租,所以住的比较远,每天要坐两个小时的地铁上下班!
小马是一个吃货,喜欢吃喜欢旅游的,下班后躺在床上,想着如果这次项目完成了:
如果能发5000块工资就可以约隔壁部门的大美女吃一顿大餐。
如果发了6000块就可以去买双球鞋,原来那双都破个洞了。
如果发了7000块就可以去趟杭州玩几天,西湖美景美如画。
想着想着,心里美滋滋的,干脆自己写一个程序提醒我多好啊!光说不练假把式,小马开始动手写Python代码..……
01.用简单的观察者模式
小马虽然是刚毕业的菜鸟码农,但是上学的时候还是很努力的,记得老师曾经教给他一些编写代码的思想,想想代码不能写的太烂啊,要方便扩展,这次干脆用老师教给我们的设计模式来做过!
观察者模式大部分都是一对多的关系,可以多个观察者对象同时监听某一个对象!这里我们有两个模式,吃货模式和旅游模式,而我们的工资就是监听对象,一旦工资发出来,我们根据工资的数目来判断,我们是去吃大餐,还是去旅游,听起来很简单吧,我上代码:
监听对象
工资就是我们设计的监听的类,里面几个函数,对工资进行设定的get和set方法。
还有两个很重要的方法,一个是增加观察者,一个是通知(一旦满足某一些条件,就可以通过这个接口立刻通知)。
两个观察者
首先抽象出一个观察者的父类,里面有一个update通知函数。
接着写吃货模式,我们重写update函数,把吃大餐和买新鞋的逻辑放在里面。
最后写旅游模式,也是要重写update函数,把旅游的逻辑放在里面,大于7000块就可以出去浪啦~~~
02.写个测试代码试一下
上面写了这么多,我们用代码来跑一下看看结果如何。
初始化3个对象,工资对象salary,吃货对象eatObser以及旅游对象travleObser。
工资对象是被监听的,我们会增加两个观察者eatObser和travleObser
最后看一下8月份的工资,我们随机一组工资看一下:
Currently salary is: 5500
>>可以去约隔壁组的莉莉mm,吃顿大餐了,哈哈!
Currently salary is: 6000
>>原来的那双球鞋都破了,总有可以去买双新的了
Currently salary is: 6500
>>原来的那双球鞋都破了,总有可以去买双新的了
另:公众号商务合作请添加微信fengyan-1101,或者扫描下方二维码PS请注明公司名称。