博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式(python)-观察者
阅读量:6001 次
发布时间:2019-06-20

本文共 1547 字,大约阅读时间需要 5 分钟。

hot3.png

#!/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'panda'# the publiser, toclass Subject(object):    def __init__(self):        self.__observers = []    # register a new obsever to the subject    def register(self, observer):        if observer not in self.__observers:            self.__observers.append(observer)    # remove a observer from the subject    def remove(self, observer):        try:            self.__observers.remove(observer)        except ValueError:            print "observer not exist."    def notify(self):        print "notify"        for observer in self.__observers:            observer.update(self)# Example usageclass Data(Subject):    def __init__(self, name):        Subject.__init__(self)        self.name = name        self.temp = 0        self.humi = 0        self.press = 0.0    def set(self, temp, humi, press):        self.temp = temp        self.humi = humi        self.press = press        self.notify()class BoardA:    def update(self, subject):        print "当前观测值 temp: %d, humi: %d, press:%.1f" % (subject.temp, subject.humi, subject.press)class BoardB:    def update(self, subject):        print "统计观测值 avg temp:%d" % (subject.temp)class BoardC:    def update(self, subject):        print "其他 temp:%d" % (subject.temp)# Example usage...def main():    data = Data("panda")    a = BoardA()    b = BoardB()    c = BoardC()    data.register(a)    data.register(b)    data.register(c)    data.set(20, 78, 101.325)if __name__ == '__main__':    main()

转载于:https://my.oschina.net/zilinangel1986/blog/425999

你可能感兴趣的文章
Kafka、RabbitMQ、RocketMQ 消息中间件的对比 | 消息发送性能篇
查看>>
业绩很美好的Facebook,如何让两款通讯工具变现?
查看>>
苹果企业账号遭滥用:iOS漏洞"留出"赌博应用通道
查看>>
越快越好 Linux用户需要赶紧补上glibc漏洞
查看>>
智能联接时代 黑客侵入汽车系统更轻松了
查看>>
《深入理解C++11:C++ 11新特性解析与应用》——2.3 扩展的整型
查看>>
《HTML5 Canvas游戏开发实战》——第3章 Canvas高级功能
查看>>
黑客很伤心,美国 NSA 泄露的黑客工具“无人问津”
查看>>
Windows 10免费升级1年的成绩:全球桌面系统占比为21.13%
查看>>
借力大数据开拓中国市场 新加坡国家旅行馆入驻蚂蜂窝
查看>>
找不到完美数据科学家?你还可以组建一支数据科学梦之队
查看>>
Windows 10新增“Reveal”特效:在选项上滑动更具美感
查看>>
贵安新区2020年建成200万台服务器的绿色数据中心
查看>>
选择光伏逆变器要考虑哪些参数指标呢?
查看>>
《我和PIC单片机:基于PIC18》——3.2 PICkit 2硬件调试器
查看>>
华为和联想再入全球最佳品牌榜
查看>>
《JavaScript和jQuery实战手册(原书第2版)》——2.7节教程:请求信息
查看>>
在华设立支持中心,Nutanix本地化部署加速
查看>>
工艺问题已解决?英特尔将在2022年推出5纳米芯片
查看>>
中资买德企不必担心 中企在德收购上演"垃圾变钱"
查看>>