位置: 编程技术 - 正文

观察者工具类NotificationUtil(观察者模式的应用)

编辑:rootadmin

推荐整理分享观察者工具类NotificationUtil(观察者模式的应用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:观察者模式的类图,观察者模式还有哪些其他名称,观察者模式还有哪些其他名称,观察者模式应用实例,观察者模式应用实例,观察者模式实际应用,观察者模式简单例子,观察者模式应用实例,内容如对您有帮助,希望把文章链接给更多的朋友!

1. .h文件

观察者工具类NotificationUtil(观察者模式的应用)

#ifndef _NotificationUtil_H_#define _NotificationUtil_H_#include "cocos2d.h"using namespace cocos2d;using namespace std;class NotificationUtil : public Ref{public:virtual bool init();CREATE_FUNC(NotificationUtil);static NotificationUtil * getInstance();//实现单例//订阅消息void addObserver(const std::string &sMsgName, std::function<void(Ref*)>func);//发布消息void postNotification(const std::string & sMsgName, Ref * data);private:static NotificationUtil * m_NotifiactionUtil;std::map<std::string, std::vector<std::function<void(Ref*)>>> m_funcMap;};#endif

2. .cpp

#include "NotificationUtil.h"NotificationUtil * NotificationUtil::m_NotifiactionUtil = NULL;bool NotificationUtil::init(){return true;}NotificationUtil * NotificationUtil::getInstance(){if (m_NotifiactionUtil == NULL){m_NotifiactionUtil = NotificationUtil::create();m_NotifiactionUtil->retain();}return m_NotifiactionUtil;}void NotificationUtil::addObserver(const std::string &sMsgName, std::function<void(Ref*)>func){//查找是否有已经存在该消息的回调列表if (m_funcMap.find(sMsgName)!=m_funcMap.end()){//已经存在该回调列表(换句话说,已经有人订阅过同样的消息)std::vector<std::function<void(Ref*)>> & funcList = m_funcMap.at(sMsgName);funcList.push_back(func);}else{//不存在该回调列表,表示没有人订阅过这种消息,新建一个列表std::vector<std::function<void(Ref *)>> funcList;//将新的订阅者添加到回调列表里funcList.push_back(func);//将新建的列表保存到map中m_funcMap[sMsgName] = funcList;}}void NotificationUtil::postNotification(const std::string & sMsgName, Ref * data){//查找是否有人订阅过此消息if (m_funcMap.find(sMsgName) != m_funcMap.end()){//获取回调列表std::vector<std::function<void(Ref*)>> funcList = m_funcMap.at(sMsgName);//遍历列表,回调函数,并保存数据for (auto func:funcList){func(data);}}}

cocos2dx3.3开发FlappyBird总结一:背景介绍 本人当前从事iOS开发,业余时间喜欢研究新的技术,便开始了这段旅程。由于本人是菜鸟,本教程是参考OiteBoy同志的开源项目而写的,并非抄袭,亦非

cocos2dx 菜单制作+弹性弹出特效 不管是做游戏还是做应用我们都避免不了要做一个东西,就是菜单,那么在cocos2dx中我们怎样来制作菜单呢,下面详细讲讲。ps.虽然cocos2dx做应用也没什

cocos2dx3.4触摸 autolistener=EventListenerTouchOneByOne::create();//创建触屏事件监听器listener-setSwallowTouches(true);//是否吞噬触摸点就是是否给下一层传递listener-onTouchBegan=CC_CALLBACK_2

标签: 观察者模式的应用

本文链接地址:https://www.jiuchutong.com/biancheng/368936.html 转载请保留说明!

上一篇:Cocos2d-x V3.4 项目模板分析(cocos2dx4.0入门)

下一篇:cocos2dx3.3开发FlappyBird总结一:背景介绍(cocos creator开发文档)

  • 月末转出未交增值税时应借记的科目是
  • 进项税额和销项税额是什么
  • 注册登记费用属于什么科目
  • 进项税额转出影响城建税吗
  • 收到存款利息怎么写分录
  • 反结账只能反结上月的账吗
  • 转让股权收入需要缴纳企业所得税吗
  • 购买增值税专用发票罪
  • 计提长期债券利息分录怎么做
  • 公交补贴收入账务处理怎么做?
  • 公司收到的其他发票
  • 房地产退房款会计分录
  • 银行提供服务收费标准
  • 税收优惠包括哪三个方面的内容
  • 营改增后补缴营业税
  • 股权转让如何避免缴纳个税
  • 服务业发票税率是多少
  • 机动车销售统一票据可以抵扣吗
  • 购买股票相关税费会计分录
  • 个税经营所得预扣预缴
  • 增值税发票系统报税盘怎么用
  • 利润出现负数怎么调整
  • 默认网关不可用修复后过一会又不好使了
  • linux sed命令详解
  • 印花税税收优惠政策2023
  • 液晶显示器容易坏点
  • php解压压缩包
  • php代码用什么工具
  • 预提费用多提汇算清缴怎么做账
  • element excel
  • 什么时候进项税转出
  • 增值税普通发票和电子普通发票的区别
  • 对公账户每笔钱都得做账吗
  • 应税工资和实发工资区别
  • 公司购买的商品房怎么入账
  • 营改增分录
  • 房地产拆迁补偿协议
  • 抄税前要做什么
  • sql server 2008有什么用
  • 增值税发票真假怎么查询
  • 企业租赁收入如何纳税
  • 计入存货成本的税费
  • 期权费如何入账
  • 城镇土地使用税征收标准及计算方法
  • 小规模免征增值税到什么时间止
  • 开票方没有缴纳增值税
  • 托盘费用怎么核算
  • 小规模公司用什么成本核算方法
  • 办理国有土地使用证
  • 发票超过密码区一点点
  • 财付通入帐中
  • 年末未分配利润总额计算公式
  • CentOs7.x安装Mysql的详细教程
  • wind10手机
  • centos基本操作
  • 安装win7系统需要注意什么
  • centos下安装gcc
  • 升级win102004
  • win8怎么看电脑wifi密码
  • win10 累积更新
  • Windows命令行删除文件夹
  • 铁嘴大师
  • 关于node.js中的模块化规范
  • python网络编程视频教程
  • python tcp socket
  • Node.js中的事件循环是什么
  • Node.js中的事件循环是什么意思
  • cmd命令可以干嘛
  • python嵌套列表生成
  • 最流行的民宿装修设计
  • shell脚本检测文件是否存在
  • jQuery progressbar通过Ajax请求实现后台进度实时功能
  • 如何用jquery
  • python面向对象编程心得体会
  • android高级开发实战------ui、ndk与安全
  • 税务局国际税收亮点工作总结
  • 成都交通官网限号查询系统
  • 河南省国家税务局发票查询官网
  • 关于公司纳税
  • 中国税务的核心价值观是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设