物件之間存在依賴關係,當主要物件狀態發生改變,所有依賴它的物件都得到通知並作出相應的反應。
class boss():
def __init__(self):
self.observers =
self.state = ""
def add(self,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()
簡單的觀察者模式
本文 使用的語言為c 請使用別的語言的同學自行轉換為自己習慣的語言 什麼是觀察者模式?簡單來說,就是一對多的通知,舉個例子 在保衛城堡類的遊戲中,如果城堡受到了攻擊,就會通知 兵營 出兵,城牆 公升級加固等等,這時的城堡就是被觀察者,而負責做出相應反應的就是觀察者。當被觀察者狀態發生改變的時候,通知...
觀察者模式簡單總結
觀察者模式就是兩個類的使用 public inte ce observer public class observable就像我們平時寫監聽一樣,不過這次是把listener加入集合中使用。public class aa public void notifyobservers public inte...
觀察者模式的簡單demo
定義物件之間一對多的關係,當乙個物件狀態被更新時,所有依賴於它的物件都將被更新。觀察者模式有四種定義角色,分別為 抽象主題 subject 具體主題 concretesubject 抽象觀察者 observer 具體觀察者 concreteobserver 這種模式可以理解為 抽象主題中定義具體主題...