觀察者:感知事件發生。
監聽者:監聽事件、處理事件。將監聽者感興趣的事件註冊到觀察者上。由觀察者進行事件統一的觀察,觀察到事件發生後,觀察者會通知所有對該事件感興趣的監聽者,該事件發生了,讓監聽者處理事件。
如圖所示:
**如下:
#include
#include
#include
#include
using namespace std;
class listener
virtual void handlemessage(int msgid)=0;
string _name;
};class listener1:public listener
void handlemessage(int msgid)}};
class listener2:public listener
void handlemessage(int msgid)}};
class listener3:public listener
void handlemessage(int msgid)}};
class observer
else
}void dispatchmsg(int msgid)}}
private:
map> _obsermap;
};int main()
obser.dispatchmsg(msgid);}}
執行結果如下:
C 兩種設計模式 單例模式和觀察者監聽者模式
一 c 中有23種設計模式,大致分為建立型模式,結構型模式以及行為模式,在這裡自己實現一下單例模式以及觀察者和監聽者模式 二 單例模式 我們通過維護乙個static的成員變數來記錄唯一的物件例項,通過提供乙個static的介面instance來獲得唯一的例項,就是乙個簡單的類的實現 class si...
監聽者模式
設計乙個事件類,gamelistener,用來儲存各種事件 需要監聽事件變化的類,需要自己主動去註冊監聽 巨集定義 methodname,gamelistener中的方法的名稱 ifndef decalre listener define decalre listener methodname pu...
監聽者模式
監聽者模式有三大組成部分 事件源 eventsource 具有註冊 的方法 事件物件 eventobject 事件 listener 有callback eventobject 方法,當收到事件發生後的處理。事件物件 主要目的是包裝事件源,然後將本身 事件物件 交給 public class eve...