觀察者模式之Python實現

2021-08-21 18:47:22 字數 1369 閱讀 9318

觀察者模式:定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某一主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己

print("觀察者觀察到的新狀態是".format(self.m_name, self.m_concretesubject.getstate()))

s = concretesubject()

s.attach(concreteobserver(s, "x"))

s.attach(concreteobserver(s, "y"))

s.setstate(1)

其輸出為:

觀察者x觀察到的新狀態是1

觀察者y觀察到的新狀態是1

解除耦合,讓耦合的雙方都依賴於抽象,而不依賴於具體,使得各自的變化都不會影響到另一邊的變化

當乙個物件改變時,需要同時改變其他物件,尤其是當它還不知道有多少個物件有待改變時,應該考慮使用觀察者模式

python觀察者模式 python 觀察者模式

python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...

python 設計模式 觀察者 觀察者設計模式

在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...

觀察者模式實現

公升級觀察者 var observer function 定義介面 return else trigger方法用於觸發觀察者物件中的事件 type 要觸發的事件名稱 trigger用於觸發觀察者物件中的事件 trigger function type,val off方法用於移除某個事件 off fu...