觀察者模式

2021-07-27 05:55:20 字數 705 閱讀 3185

/**

* 觀察者模式應用場景例項 *

* * 場景描述: * 

哈票以購票為核心業務

(此模式不限於該業務

),但圍繞購票會產生不同的其他邏輯,如:

* 1、購票後記錄文字日誌

* 2、購票後記錄資料庫日誌

* 3、購票後傳送簡訊

* 4、購票送抵扣卷、兌換卷、積分

* 5、其他各類活動等 *

* 傳統解決方案:

* 在購票邏輯等類內部增加相關**,完成各種邏輯。 *

* 存在問題:

* 1、一旦某個業務邏輯發生改變,如購票業務中增加其他業務邏輯,需要修改購票核心檔案、甚至購票流程。

* 2、日積月累後,檔案冗長,導致後續維護困難。 *

* 存在問題原因主要是程式的

"緊密耦合

",使用觀察模式將目前的業務邏輯優化成

"松耦合

",達到易維護、易修改的目的, * 

同時也符合面向介面程式設計的思想。 *

* 觀察者模式典型實現方式:

* 1、定義2

個介面:觀察者(通知)介面、被觀察者(主題)介面

* 2、定義2

個類,觀察者物件實現觀察者介面、主題類實現被觀者介面

* 3、主題類註冊自己需要通知的觀察者

* 4、主題類某個業務邏輯發生時通知觀察者物件,每個觀察者執行自己的業務邏輯。

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

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

觀察者模式

觀察者模式 observer 完美的將觀察者和被觀察的物件分離開。舉個例子,使用者介面可以作為乙個觀察者,業務資料是被觀察者,使用者介面觀察業務資料的變化,發現資料變化後,就顯示在介面上。物件導向設計的乙個原則是 系統中的每個類將重點放在某乙個功能上,而不是其他方面。乙個物件只做一件事情,並且將他做...

觀察者模式

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