#Observer

成就系统
achievements system
玩家完成某种成就后,通知监督者,监督者做出相应出来 ```
//简单来说就是事件触发的时候, 通知监督者 class Observer
{
public:
virtual ~Observer() {}
virtual void onNotify(const Entity& entity, Event event) = ;
}; class Achievements : public Observer
{
public:
virtual void onNotify(const Entity& entity, Event event)
{
switch (event)
{
case EVENT_ENTITY_FELL:
if (entity.isHero() && heroIsOnBridge_)
{
unlock(ACHIEVEMENT_FELL_OFF_BRIDGE);
}
break; // Handle other events, and update heroIsOnBridge_...
}
} private:
void unlock(Achievement achievement)
{
// Unlock if not already unlocked...
} bool heroIsOnBridge_;
}; class Subject
{
private:
Observer* observers_[MAX_OBSERVERS];
int numObservers_; public:
void addObserver(Observer* observer)
{
// Add to array...
} void removeObserver(Observer* observer)
{
// Remove from array...
} protected:
void notify(const Entity& entity, Event event)
{
for (int i = ; i < numObservers_; i++)
{
observers_[i]->onNotify(entity, event);
}
} };
``` 语言绑定: java mvc
c# event 其他例子: ```
ui得到数据改变的通知
数据改变,ui即时表现出来
```

3_observer的更多相关文章

随机推荐

  1. angualejs

    http://segmentfault.com/a/1190000000347412 http://www.xker.com/page/e2015/06/199141.html http://www. ...

  2. onCreate中获得控件的大小

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC ...

  3. 脑法之中的一个 --- DEBUG与搜索算法

    前年闲的蛋疼的时候,看过天津卫视的一档节目<非你莫属>,就来一堆面试者,上面几个壕.选人.记得有一期是给程序猿做的.当中有一个程序猿(好像是媛)傻不啦叽的说,哎呀,我每次DEBUG找到程序 ...

  4. maven;tomcat配置

    [说明]今天呀,上午刚刚打算写javaweb项目,服务器就出现了问题,就花了点时间搞定了:下午听老大说了任务的大致内容和意义,收获颇多:晚上去服务器上部署了maven,听说可以实现热部署 一:今天完成 ...

  5. 电路分析二-------基尔霍夫定律KCL和KVL

    1.先了解几个名词 (1)支路----一个二端原件视为一条支路--图中6个二端原件所以有6条支路. (2)结点----两条或以上的支路连接的点. d,e可以看做一个结点. (3).回路----- (4 ...

  6. php生成条形码: barcodegen

    实例结构: 1. index.html <!DOCTYPE html> <html> <head> <title>Test with embedded ...

  7. centos 安装Phpstorm

    下载: http://www.jetbrains.com/phpstorm/download/#section=linux 解压: tar -zxf PhpStorm-8.0.1.tar.gz # 然 ...

  8. wechat JS-SKD (getLoaction) 定位显示百度map

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. dos与unix文件格式之间的转换

    1. VI编辑器中转换 在VI中使用命令 set ff?(fileformat)可以查看文件的格式,使用set ff=dos(unix)可以设置文件的格式 2.使用sed处理(来至http://www ...

  10. 如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题

    1.问题描述 假如有一个文章的业务(Article),我们在 Controllers文件夹中创建MVC Controller和Api Controller,各个Controller中都有相同的获取文章 ...