美文网首页
设计模式(python)

设计模式(python)

作者: 王大吉 | 来源:发表于2019-11-16 00:57 被阅读0次

观察者模式

观察者模式思想核心就是:把观察者挂在被观察对象上,当被观察对象状态发生变化时候,依次推送给观察者
eg: 男人在外面死命挣钱(被观察者),老婆女儿两个观察者,一旦男人钱包金额发生变动需要通知老婆女儿

# coding=utf-8

class Man:
    def __init__(self):
        # 男人怀揣500块出门
        self.money = 500
        self.family = []

    def watching(self, woman):
        self.family.append(woman)

    def get_money(self, money):
        self.money += money
        self.push()

    def push(self):
        for f in self.family:
            f.pull(self)


class Woman:
    def __init__(self):
        pass

    def pull(self):
        pass


class Daughter(Woman):
    def __init__(self):
        pass

    def pull(self, dad):
        print '爸爸好厉害, 挣了{}块钱'.format(dad.money)


class Wife(Woman):
    def __init__(self):
        pass

    def pull(self, dad):
        print '才挣{}块钱,怎么养家?'.format(dad.money)


if __name__ == '__main__':
    daughter = Daughter()
    wife = Wife()
    dad = Man()
    dad.watching(wife)
    dad.watching(daughter)

    dad.get_money(1000)
    dad.get_money(3000)

运行结果

才挣1500块钱,怎么养家?
爸爸好厉害, 挣了1500块钱
才挣4500块钱,怎么养家?
爸爸好厉害, 挣了4500块钱

看,当dad.watching(wife) or dad.watching(daughter)之后老爸钱包里钱一旦变动,观察者不需要做任何东西,消息就自动推送到观察者身边了。

相关文章

  • 二十三种设计模式及其python实现

    参考文献: 《大话设计模式》——吴强 《Python设计模式》——pythontip.com 《23种设计模式》—...

  • 基础-单例模式

    单例模式总结-Python实现 面试里每次问设计模式,必问单例模式 来自《Python设计模式》(第2版) 1.理...

  • 《精通Python设计模式_带索引书签目录》 分享下载

    书籍信息 书名: 精通Python设计模式_带索引书签目录 标签: 精通Python设计模式_带索引书签目录,免费...

  • python中OOP的单例

    目录 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式设计模式 是 前人...

  • 单例

    目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式设计模式 是 前人...

  • python 单例

    仅用学习参考 目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式设计...

  • Python 设计模式初探

    Python 设计模式初探 本博客是在阅读精通Python设计模式(中文版),以及阅读 Mask R-CNN 第三...

  • Python的官方教程

    Scrapy中文教程Django中文教程DjangoBookJavaScript设计模式大话设计模式-Python...

  • L1 Python自学 - 笔记

    1. 设计模式 1.1. Python 设计模式 https://www.bilibili.com/video/a...

  • 80 个Python 新手入门课demo

    Python3 简明教程 Python版设计模式实践 Python Flask Web框架 Python3 基于 ...

网友评论

      本文标题:设计模式(python)

      本文链接:https://www.haomeiwen.com/subject/zcpeictx.html