知行编程网知行编程网  2022-04-02 06:00 知行编程网 隐藏边栏 |   抢沙发  10 
文章评分 0 次,平均分 0.0

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


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


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

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

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

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


10分钟学Python设计模式|观察者模式


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


01.

用简单的观察者模式


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


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


1).监听对象

10分钟学Python设计模式|观察者模式


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

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


2).两个观察者

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

10分钟学Python设计模式|观察者模式


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

10分钟学Python设计模式|观察者模式


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

10分钟学Python设计模式|观察者模式



02.

写个测试代码试一下


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

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


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

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


Currently salary is: 5500

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

Currently salary is: 6000

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

Currently salary is: 6500

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



    本篇文章来源于: 菜鸟学Python

    本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

    知行编程网
    知行编程网 关注:1    粉丝:1
    这个人很懒,什么都没写

    发表评论

    表情 格式 链接 私密 签到
    扫一扫二维码分享