日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

观擦者模式

發布時間:2023/11/30 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 观擦者模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/********************************************************************created: 2006/07/20filename: Observer.hauthor: 李創http://www.cppblog.com/converse/purpose: Observer模式的演示代碼 *********************************************************************/#ifndef OBSERVER_H #define OBSERVER_H#include <list>typedef int STATE;class Observer;// Subject抽象基類,只需要知道Observer基類的聲明就可以了 class Subject { public:Subject() : m_nSubjectState(-1){}virtual ~Subject();void Notify(); // 通知對象改變狀態void Attach(Observer *pObserver); // 新增對象void Detach(Observer *pObserver); // 刪除對象// 虛函數,提供默認的實現,派生類可以自己實現來覆蓋基類的實現virtual void SetState(STATE nState); // 設置狀態virtual STATE GetState(); // 得到狀態protected:STATE m_nSubjectState; // 模擬保存Subject狀態的變量std::list<Observer*> m_ListObserver; // 保存Observer指針的鏈表 };// Observer抽象基類 class Observer { public:Observer() : m_nObserverState(-1){}virtual ~Observer(){}// 純虛函數,各個派生類可能有不同的實現// 通知Observer狀態發生了變化virtual void Update(Subject* pSubject) = 0;protected:STATE m_nObserverState; // 模擬保存Observer狀態的變量 };// ConcreateSubject類,派生在Subject類 class ConcreateSubject: public Subject { public:ConcreateSubject() : Subject(){}virtual ~ConcreateSubject(){}// 派生類自己實現來覆蓋基類的實現virtual void SetState(STATE nState); // 設置狀態virtual STATE GetState(); // 得到狀態};// ConcreateObserver類派生自Observer class ConcreateObserver: public Observer { public:ConcreateObserver() : Observer(){}virtual ~ConcreateObserver(){}// 虛函數,實現基類提供的接口virtual void Update(Subject* pSubject); };#endif

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的观擦者模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。