码迷,mamicode.com
首页 > 其他好文 > 详细

观察者模式

时间:2014-08-25 18:40:04      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   for   ar   2014   div   代码   

模式说明

定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。

模式结构图

bubuko.com,布布扣

程序示例

说明:两个观察者,得到同一个通知

代码:

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 + info

class NBAObserver(Observer):
    pass

class 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()

运行结果:

bubuko.com,布布扣

参考来源:

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

观察者模式

标签:style   blog   http   color   for   ar   2014   div   代码   

原文地址:http://www.cnblogs.com/wang-shuai/p/3935234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!