MVC模型中的Observer模式

本文介绍Symbian系统中MVC架构的Observer模式实现。重点讲解如何通过Observer模式让UI作为唯一观察者,及时响应Model变化并更新视图。文章详细展示了Observer接口定义、UI实现及Model的数据处理与通知机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值