c_cpp CPP:观察者设计模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp CPP:观察者设计模式相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <vector>
class Entity
{
};
enum Event
{
SOME_EVENT_A,
SOME_EVENT_B,
};
class Observer
{
public:
virtual ~Observer() {}
// The parameters can be adjusted for specific need
virtual void OnNotify(const Entity& entity, Event event);
};
class Ahievements : public Observer
{
public:
virtual void OnNotify(const Entity& entity, Event event)
{
switch(event)
{
case SOME_EVENT_A:
// Do something
break;
case SOME_EVENT_B:
// Do something
break;
}
}
};
class Subject
{
public:
void OnNotify(const Entity& entity, Event event)
{
for(Observer* o : _observers)
{
o->OnNotify(entity, event);
}
}
void AddObserver(Observer* observer)
{
// Add to array
}
void RemoveObserver(Observer* observer)
{
// Remove from array
}
std::vector<Observer*> _observers;
}
class Physics : public Subject
{
}
int main()
{
return 0;
}
以上是关于c_cpp CPP:观察者设计模式的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 简单的NSManagedObject更新观察器
c_cpp [illumos和bsros datalink layer]用于观察dladm和libdladm行为的Dtrace片段#tags:dladm,datalink,数据链管理,
c_cpp C ++命令设计模式
c_cpp C ++工厂设计模式
c_cpp myKaarma模式问题
c_cpp glob模式匹配