設計模式之觀察者模式 及 c 實現

2021-06-11 17:16:48 字數 988 閱讀 5370

觀察者模式是最常用的設計模式之一,在此模式中,乙個目標物件管理依賴它的觀察物件,並在自身狀態發生改變的時候主動通知所有註冊的觀察者物件。觀察者模式常被用作設計事件處理系統。

例如下面的示例**是常見的觀察者模式的示例,在此用c++進行實現。貓作為目標物件 管理兩個觀察者,乙個是主人,乙個是老鼠。當貓叫這個事件發生時能夠呼叫觀察者相應的響應函式,從而做出相應的反應。

通過觀察者模式可以優化程式的業務邏輯,實現松耦合、易維護。

//-------------**示例-------------

#include

#include

using namespace std;

class cobserver;

class csubject

;private:

list* m_obslist;

public:

virtual attach(cobserver* pobs);

virtual detach(cobserver* pobs);

virtual notify();

virtual action()=0;

};class ccat:public csubject;};

class cobserver  

;class cmaster:public cobserver

;class cmouse:public cobserver

;//  實現

cobserver::cobserver()

cobserver::~cobserver()

void cmaster::response()

void cmouse::response()

csubject::attach( cobserver* pobs )

csubject::detach( cobserver* pobs )

}csubject::notify()

}void ccat::cry()

設計模式C 實現 觀察者模式

觀察者模式 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。它還有兩個別名,依賴 dependents 發布 訂閱 publish subsrcibe 可以舉個部落格訂閱的例子,當博主發表新文章的時候,即博主狀態發生了改變,那些訂閱的讀者就會收...

設計模式 觀察者模式 C 實現

觀察者模式是軟體設計模式的一種。在此種模式中,乙個目標物件管理所有相依於它的觀察者物件,並且在它本身的狀態改變時主動發出通知。這通常透過呼叫各觀察者所提供的方法來實現。此種模式通常被用來實時事件處理系統。1.模式定義 觀察者模式 observer pattern 定義物件間的一種一對多依賴關係,使得...

C 實現設計模式 觀察者模式

關於觀察者模式,對它的認知依舊是起源於菜鳥教程的設計模式篇章,裡面解釋的很到位。這裡簡單介紹一句,當物件間存在一對多關係時,則使用觀察者模式 observer pattern 比如,當乙個物件被修改時,則會自動通知它的依賴物件。觀察者模式屬於行為型模式。詳細介紹戳該鏈結 菜鳥教程 觀察者模式 本文分...