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

程序示例
说明:两个观察者,得到同一个通知
代码:
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()
运行结果:

参考来源:
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
