# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
"""
@author: Edagr
这是观察者模式的一个应用场景。(具体故事情节请见《设计模式之禅》)
·观察者模式使得被观察者的行为能引起观察者的反应。
"""
class Observable(object):
def __init__(self):
self.observers = []
def addObserver(self, observer):
self.observers.append(observer)
def deleteObserver(self, observer):
self.observers.remove(observer)
def notifyObservers(self, action):
for observer in self.observers:
observer.update(action)
class Observed(Observable):
def __init__(self, name):
super(Observed, self).__init__()
self.name = name
def act(self):
action = '{0}起床刷牙洗脸了。'.format(self.name)
print action
self.notifyObservers(action)
class Observer(object):
def __init__(self, name):
self.name = name
def update(self, action):
print '启禀{0}大人, 发现{1}'.format(self.name, action)
if __name__ == '__main__':
HanFei = Observed('韩非')
LiSi = Observer('李斯')
WangSi = Observer('王斯')
HanFei.addObserver(LiSi)
HanFei.addObserver(WangSi)
HanFei.act()
设计模式之观察者模式
最新推荐文章于 2023-04-14 07:37:08 发布