观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。
#include <QCoreApplication>
#include <iostream>
#include <list>
using namespace std;
//抽象英雄 抽象的观察者
class AbstractHero{
public:
virtual void Update()=0;
};
class HeroA:public AbstractHero{
public:
HeroA(){
cout<<"HeroA"<<endl;
}
virtual void Update(){
cout<<"HeroA stop attack"<<endl;
}
};
class HeroB:public AbstractHero{
public:
HeroB(){
cout<<"HeroB"<<endl;
}
virtual void Update(){
cout<<"HeroB stop attack"<<endl;
}
};
class HeroC:public AbstractHero{
public:
HeroC(){
cout<<"HeroC"<<endl;
}
virtual void Update(){
cout<<"HeroC stop attack"<<endl;
}
};
//观察目标
class Ab