MVC模型中的Observer模式

来源:互联网 发布:ewbwin10仿真软件下载 编辑:程序博客网 时间:2024/06/05 10:14

Symbian----MVC模型中的Observer模式

--------------------------------------------------------------------------------------------------

MVC区别于一般结构的地方在于:
对于Model,MVC只需要一个Observer,即UI。
(通常来说,一个“主体”可能对应许多个“观察者”,这就需要在“主体”中维护这个观察者队列,而且,“观察者”中不需要定义“主体”,
只需要在“主体”中提供方法“注册”和“解除注册”观察者)


1、定义Observer,它的作用是提供一个接口,用来监视Model的更新,并及时通知界面进行相应的操作

class MObserver
{
   public:
   virtual void Update()=0;
};

2、UI负责界面
在UI中继承MObserver,并实现Update函数,更新View

class CmyAppUi : public CQikAppUi, public MObserver
{
//这里略去Ui中的其他部分

private:
   Model myModel;

public:
//构造函数里初始化model,并把this传递给model
CmyAppUi()
{
   myModel=Model(this);
}

Update()
{//update code}//在这里更新界面的显示或进行其他操作
};


3、Model类,负责后台操作,数据处理
初始化时引入一个MObserver对象iObserver,当数据处理完成,需要更新的时候,即刻调用MObserver的Update函数进行更新
class Model
{
public:
    Model(MObserver * aObserver):iObserver(aObserver)
    {
    }
   DataProcess()
   {
    //处理数据代码
    //通知更新
    iObserver->Update();
   }
private:
    MOberver* iObserver;
};