学习笔记 c++ ( C++设计模式-观察者模式 实例)

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。

代码实例:
 

#include
#include

using namespace std;

//抽象的英雄 抽象的观察者
class AbstractHero
{
public:
    virtual void Update() = 0;
};


//具体的观察者
class HeroA : public AbstractHero
{
public:
    HeroA()
    {
        cout<<"英雄A正在撸BOSS。。。"<::iterator it = pHeroList.begin(); it != pHeroList.end(); it++)
        {
            (*it)->Update();
        }
    }   

list pHeroList;
};

void test1()
{
    //创建观察者
    AbstractHero* heroA = new HeroA;
    AbstractHero* heroB = new HeroB;
    AbstractHero* heroC = new HeroC;
    AbstractHero* heroD = new HeroD;
    AbstractHero* heroE = new HeroE;

    //创建被观察者
    AbstractBoss* bossA = new BossA;
    bossA->addObserver(heroA);
    bossA->addObserver(heroB);
    bossA->addObserver(heroC);
    bossA->addObserver(heroD);
    bossA->addObserver(heroE);

    cout<<"heroC 阵亡。。。"<deleteObserver(heroC);

    cout<<"boss死了, 通知其他英雄停止攻击"<notify();
}


int main()
{
    test1();
    return 0;
}

 运行结果:

学习笔记 c++ ( C++设计模式-观察者模式 实例)_第1张图片

你可能感兴趣的:(c++学习,ubuntu)