理解設計模式(觀察者)

2022-07-26 01:30:19 字數 623 閱讀 5532

觀察者模式,保證主題和若干觀察者之間的一致性。

有時又被稱為發布-訂閱subscribe>模式、模型-檢視view>模式、源-收聽者listener>模式或從屬者模式

此種模式通常被用來實現事件處理系統

乙個系統,由乙個物件和若干協作物件組成,同時要避免這些物件之間相互耦合

一般由介面或抽象類實現

註冊有若干抽象觀察者的引用集

同時,能夠增刪抽象觀察者,並在自身發生改變時,通知觀察者作出相應變化

一般由具體子類實現抽象主題角色,具有自己的狀態

一般由介面或抽象類實現

為所有具體觀察者定義行為規範

並定義方法,接收通知並更新自身狀態

一般由具體子類實現抽象觀察者角色,具有自己的狀態,隨主題狀態變化而變化

在觀察者模式中,又分為:

observer 介面 :觀察者

observable 類 : 主題,即被觀察者

通過繼承或實現它們,可以快速實現觀察者模式,並且執行緒安全

另外,這兩個型別使用的是 拉模型

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

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

理解設計模式之觀察者模式

觀察者模式定義了物件之間一對多依賴,當乙個物件改變狀態時,他的所有依賴者都會收到通知並自動更新。為互動物件之間的松耦合設計而努力。盡力做到互動物件之間不直接產生聯絡和作用。觀察者模式中主題 subject 與觀察者 observer 之間的關係是當主題中觀察者關心的部分發生變化時,要及時通知觀察者,...

觀察者設計模式

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,讓它們能夠自動更新自己。抽象主題角色 subject 把所有對觀察者物件的引用儲存在乙個集合中,每個抽象主題角色都可以有任意數量的觀察者。抽象主題提供乙個介面,可以增加...