C 設計模式之觀察者模式

2021-09-26 07:10:30 字數 1034 閱讀 3656

觀察者設計模式定義了物件間的一對多的依賴關係,乙個物件的行為依賴於另乙個物件的狀態的情況下,當物件狀態發生變化時,依賴它的物件會得到通知並自動重新整理。

觀察者模式中主要有兩種角色:觀察者和監聽者

觀察者主要是在事件到來時, 通知對於該事件感興趣的監聽者來處理事件。所以它的職責也就顯而易見了:①通知觀察者;②註冊事件。那麼監聽者當然就是來處理事件的了。

接下來通過**實現乙個簡單的觀察者模式~

#include#includeclass listerner			//定義監聽者類

virtual void handlemessage(int message)const = 0;

protected:

std::string mname;

};class listerner1 : public listerner //定義1號監聽者

virtual void handlemessage(int message)const }

};class listerner2 : public listerner //定義2號監聽者

virtual void handlemessage(int message)const }

};class listerner3 : public listerner //定義3號監聽者

virtual void handlemessage(int message)const }

};#include#include/*

multimap 一對多

map 一對乙個集合

*/class obeserve //定義觀察者

else

}void notify(int message)

}}private:

std::map> mymap;

};int main()

執行結果:

c 設計模式之觀察者模式

觀察者模式 observer 定義 觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,讓它們能夠自動更新自己。觀察者模式類結構圖 觀察者模式的角色 subject抽象主題角色 把所有對觀察者物件的引用儲存在乙個集合中,...

c 設計模式之觀察者模式

觀察者模式定義了物件間的一對多依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都會得到通知並自動更新.觀察者與被觀察者之間使用松耦合方式結合 主題是真正擁有資料的人,觀察者是主題的依賴者,在資料變化時更新,比許多物件控制同乙份資料更乾淨 class observer 觀察者介面 class ...

C 設計模式之觀察者模式

觀察者模式 建立與一種物件與物件之間的依賴關係,乙個物件發生改變時將自動通知其他物件,其他物件將相應作出反應。在觀察者模式中,發生改變的物件成為觀察目標,而被通知的物件稱為觀察者。乙個觀察目標對應多個觀察者 抽象的英雄 觀察者 class abstracthero class heroa publi...