观察者模式的python实现

时间:2024-07-16 10:05:26

什么会观察者模式?观察者模式就是订阅-推送模式。是为了解耦合才会被利用起来的设计模式。

经典的就是boss 前台和员工之间的故事。一天A员工在看电影,B员工在看动漫,但是两人担心boss来了,自己没及时关掉页面,被老板发现,就委托前台的小姐姐如果老板来了通知一下他们。

对于A和B来说就出于观察者的位置,前台小姐姐就出于统治者的位置。

分析一下:前台小姐姐需要有两个属性:老板的状态和需要通知的员工列表

class  basenotify():
def __init__(self):
self.t_list = []
self.status = ''
def myappend(self,observer):
pass
def update(self):
pass class sister(basenotify):
def __init__():
basenotify.__init__(self)
pass
def myappend(observer):
self.t_list.append(observer)
def notify():
for v in self.t_list:
v.update()

员工可以没有属性,但是可以有多个员工

class baseobserver():
def __init__(self,name,sex):
self.name = name
self.sex = sex
pass
def update(self):
pass class Aobserver(baseobserver):
def __init__(self,name,sex):
baseobservise.__init__(name,sex)
pass def update(self):
print '' class Bobserver(baseobserver):
def __init__(self,name,sex):
baseobservise.__init__(name,sex)
pass def update(self):
print ''

如何调用:

if __name__=="__main__":
mysister = sister()
a= Aobservise()
b= Bobservise()
mysister.append(a)
mysister.append(b)
mysister.status ='i am comming'
mysister.notify()