位置: 编程技术 - 正文

观察者工具类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开发文档)

  • 超过500万需要补税吗
  • 办税员的工作职责
  • 印花税不通过税金及附加核算
  • 应交税费应交增值税减免税款
  • 交强险怎么查
  • 增值税无票收入可以抵扣
  • 个税网络申报
  • 外汇账户包括哪些类型
  • 运输发票抵扣税怎么算
  • 本期缴纳上期应缴税额
  • 维修 物业
  • 出租无形资产的收入
  • 投资收益的表现形式
  • 附注的主要作用
  • 投资收益率如何确定
  • 个人名下车辆过户
  • 会计报表上总资产怎么填
  • 自己的公司钱能自己用吗
  • 当期免抵税额和当期留抵税额
  • 自营方式建造固定资产成本包括增值税吗
  • 基金公司收到投资者的投资款
  • 高新企业研发人员
  • 季报企业所得税营业收入本年累计怎么填写
  • 独立费计算
  • 文件改后缀什么意思
  • 接待客人后的感受和过程
  • 暂估入账收入会计分录
  • win10插usb没有反应
  • php初学实例教程
  • PHP:session_set_cookie_params()的用法_Session函数
  • 产品成本计算的分类法适用于( )
  • 结算劳务外包的工作内容
  • 新税法减免项目
  • 调整固定资产折旧年限,折旧额的变化
  • 跨年费用计入未分配利润
  • javascript移动鼠标
  • php的lamp
  • phpunit
  • 无形资产摊销怎么算月摊销额
  • vue使用百度地图三方标准地图清空后卡死
  • 深度学习|论文中常用的注意力模块合集(下)
  • 定期定额征收超出3万怎么办
  • 现金报销医药费
  • hive.
  • 成品油电子普通发票如何入账
  • 在阿里云的云主机之间怎么通信
  • windows7基本使用教程
  • 各部门和单位按照国家有关规定收取或取得
  • 海关完税凭证抵税怎么算
  • 个人缴纳税是什么意思
  • 计提的坏账准备计入什么科目
  • 利息收入是一级科目还是
  • 调账和调帐区别
  • 劳务费会计分录是什么
  • 利息保障倍数为0说明什么
  • 各大银行网银转账限额
  • 免税企业开了含税吗
  • 费用会计处理
  • 应发工资应税工资
  • 银行的结息怎么做会计分录
  • 金蝶现金银行存款账怎么记账
  • 留存收益属于什么会计要素
  • 年底不发工资 员工离职
  • 成本费用会计科目
  • mysql复制命令
  • mysql压测调优
  • 未知文件怎么删除
  • window系统怎么复制粘贴
  • babylon.exe进程有什么作用 babylon进程是什么文件
  • 文件fwpkc1nt.sys
  • windows7如何关闭夜间模式
  • centos 7 dns
  • win8的运行在哪里打开
  • ExtJS 2.0实用简明教程 之获得ExtJS
  • nodejs test
  • js.ajax
  • python web网站
  • 纳税服务的背景是什么
  • 园区地税局在哪里
  • 西安市灵活就业社保缴费截止时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设