IOS设计模式之观察者模式

来源:互联网 发布:paparecipe验证软件 编辑:程序博客网 时间:2024/05/16 14:38

观察者(Observer)模式也叫发布订阅(publish/subscribe)模式,是MVC(模型-视图-控制器)模式的重要组成部分。

#include <iostream>

using namespace std;

class Observer

{

public:

    virtual void Update() =0;

    virtual ~Observer(){}

};

class Engine 

{

public:

    Engine(Observer *aObserver):_observer (aObserver)

    {

        

    }

    void DownLoad()

    {

        cout<<"Subjcet finished!"<<endl;

        _observer->Update();

    }

private:

    Observer *_observer;

};

class AppUI :public Observer

{

public:

    AppUI()

    {

        _engine = newEngine(this);

    }

    ~AppUI()

    {}

    void Start()

    {

        cout<<"The subject is called!"<<endl;

        _engine->DownLoad();

    }

    void Update()

    {

        cout<<"The Observer is Called!"<<endl;

    }

private:

    Engine *_engine;

};

int main(int argc, const char * argv[])

{

  AppUI *pUI=newAppUI;

    pUI->Start();

    delete pUI;

}

在Cocoa Touch框架中,具体应用有两个,通知(notification)机制,KVO(key-Value-Observing)键值观察机制。通知机制于委托机制不同的是,通知是一对多的对象之间的通信,委托是一对一的对象之间的通信。

0 0
原创粉丝点击