首页 > 代码库 > 观察者模式
观察者模式
模式说明
定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。
模式结构图
程序示例
说明:两个观察者,得到同一个通知
代码:
class Subject(object): observers=[] info=‘‘ def __init__(self,info): self.info = info def notify(self): for o in self.observers: o.display(self.info) def attach(self,observer): self.observers.append(observer) def deattach(self,observer): self.observers.remove(observer)class Observer(object): def __init__(self,name): self.name=name def display(self,info): print ‘notice ‘+ self.name + ‘ that ‘+ infoclass NBAObserver(Observer): passclass F1Observer(Observer): pass if __name__==‘__main__‘: subject = Subject(‘win win win win‘) observer = NBAObserver(‘NBA‘) subject.attach(observer) observer = F1Observer(‘F1‘) subject.attach(observer) subject.notify()
运行结果:
参考来源:
http://www.cnblogs.com/chenssy/p/3679190.html
http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html
http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html
观察者模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。