觀察者模式定義了物件間的一對多依賴關係, 當乙個物件的狀態發生改變時, 所有依賴於它的物件都會得到通知並自動更新.
觀察者與被觀察者之間使用松耦合方式結合
主題是真正擁有資料的人, 觀察者是主題的依賴者, 在資料變化時更新, 比許多物件控制同乙份資料更乾淨
class observer // 觀察者介面
;class subject // 主題介面
;class concretesubject : public subject
void removeobserver(observer *s)
void notifyobserver() }
private:
std::setobservers;
};class concreteobserver : public observer
};#endif
測試
#include #include "observer.h"
int main(int argc, char **argv)
c 設計模式之觀察者模式
觀察者模式 observer 定義 觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,讓它們能夠自動更新自己。觀察者模式類結構圖 觀察者模式的角色 subject抽象主題角色 把所有對觀察者物件的引用儲存在乙個集合中,...
C 設計模式之觀察者模式
觀察者設計模式定義了物件間的一對多的依賴關係,乙個物件的行為依賴於另乙個物件的狀態的情況下,當物件狀態發生變化時,依賴它的物件會得到通知並自動重新整理。觀察者模式中主要有兩種角色 觀察者和監聽者 觀察者主要是在事件到來時,通知對於該事件感興趣的監聽者來處理事件。所以它的職責也就顯而易見了 通知觀察者...
C 設計模式之觀察者模式
觀察者模式 建立與一種物件與物件之間的依賴關係,乙個物件發生改變時將自動通知其他物件,其他物件將相應作出反應。在觀察者模式中,發生改變的物件成為觀察目標,而被通知的物件稱為觀察者。乙個觀察目標對應多個觀察者 抽象的英雄 觀察者 class abstracthero class heroa publi...