对象之间存在依赖关系,当主要对象状态发生改变,所有依赖它的对象都得到通知并作出相应的反应。
class Boss():
def __init__(self):
self.Observers = []
self.State = ""
def Add(self,observe): # 添加观察者
self.Observers.append(observe)
def notice(self): # 逐个发送通知
for i in self.Observers:
i.update()
class Staff(object):
def __init__(self,name,boss):#boss 就是Boss()
self.name = name # 观察者名字
self.boss = boss
def update(self):
print("%s,%s,please don't play games during office hours!"%(self.name,self.boss.State)) # 关键是这里
if __name__ == "__main__":
pony = Boss()
ls = Staff("Alin",pony)
pony.State = "The Boss is coming"
pony.Add("Alin")
ls.update()