设计模式之观察者模式

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

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类其他成员不可见,不可调用。

上一篇:SQL Server 2014新特性——基数评估(白皮书阅读笔记)


下一篇:学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter