1、定義:乙個物件狀態改變時(目標物件),所有依賴他的物件(觀察者物件)都需要發生改變。
示例:有乙個sender類,負責資料的傳送,display類和media類都需要呼叫sender類中的方法進行資料傳送,當網路連線斷開時,需要通知display和media類停止資料傳送。
緊耦合設計:
#include#include using namespace std;
class display
private:
display* display_module; //依賴具體實現細節
*********** media_module;
};#include "test.h"
int main()
採用觀察者模式的松耦合設計
#include#include using namespace std;
class observer
;class display:public observer
}private:
listmodulelist; //解耦設計,依賴介面而不依賴具體實現。
};#include "test.h"
int main()
行為模式(觀察者模式)
觀察者模式,也稱發布 訂閱模式,定義了乙個被觀察者和多個觀察者的 一對多的物件關係。在被觀察者狀態發生變化的時候,它的所有觀察者都會收到通知,並自動更新。觀察者模式通常用在實時事件處理系統 元件間解耦 資料庫驅動的訊息佇列系統,同時也是mvc設計模式中的重要組成部分。以下我們以訂單建立為例。當訂單建...
行為模式 觀察者 模式
觀察者模式應用比較廣泛,又被稱為 發布 訂閱 模式。它用來定義物件間一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都得到通知並被自動更新。觀察者模式的角色有 抽象主題 具體主題 發布者 抽象觀察者和具體觀察者 訂閱者 from abc import abcmeta,abstrac...
行為型設計模式 觀察者模式
觀察者模式定義一種一對多的依賴關係,讓多個觀察者物件同時監聽某一種主題物件,這個主題物件在狀態發生變化時,會通知所有觀察者物件,使他們能夠自動更新。也就是說乙個類物件可以有多個監聽,當某乙個屬性或者方法發生變化,對應的多個監聽就被觸發,執行各自方法,實現更新。解決思路 定義乙個觀察者模式介面,其實現...