返回> 网站首页 

设计模式之观察者模式

yoours2009-05-19 20:17:37 阅读 1153

简介一边听听音乐,一边写写文章。

写作方法:
    一般用于异步通讯

1. 定义ObServer类
   定义允许调用的虚函数,保护其他函数使不可见。
   只进行定义不是先具体方法
class MDBEngineObserver
{
public:
 virtual void UpdateState(TInt iState)=0;
};


2. Subject类
   a) 调用ObServer类(异步触发事件的类),修改new入口参数(构造函数入口要带参数)
 static CBookstoreDb* NewL(Observer& aObserver);
 static CBookstoreDb* NewLC(Observer& aObserver);
 CBookstoreDb(Observer& aObserver);
 ~CBookstoreDb();


   b) 定义私有ObServer变量,用于调用虚拟函数
private:
 MDBEngineObserver& iObserver;


    c) 在构造函数初始化的同时初始化ObServer变量
 :iObserver(aObserver)
   d) 在需要的地方调用iObServer->UpdateState();
 
3. 主程序
   以Symbian的AppUI类为例,首先要继承Observer,然后实现该类的虚拟函数,如:UpdateState()。new出Subject类,并将自身作为指针传递给Subject类。
 
    本文主要内容是观察者设计模式的程序实现方法。函数的调用其实就是通过ui类的指针实现的,我认为使用该模式主要目的是保护AppUI类其他成员不可见,不可调用。

微信小程序扫码登陆

文章评论

1153人参与,0条评论