位置: 编程技术 - 正文

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

  • 个人所得税的税目分多少种
  • 房产税的税收优惠政策
  • 税收管辖权是指
  • 买充值卡可以开票吗
  • 小规模纳税人劳务派遣差额征税税率
  • 公司买茶具计入什么费用
  • 员工事假扣工资怎么做账
  • 塔吊基础属于哪一类
  • 分公司独立核算企业所得税缴纳
  • 房地产企业汇算清缴要点
  • 多付车款退回怎么做账
  • 企业外购消费品会计分录
  • 员工生育期间社保
  • 个体户开票要交印花税?
  • 发票密码区出来了一些
  • 生产工具计入什么费用
  • 所得税季报填写说明
  • 无租使用房产协议
  • 生产型企业进出口初申报流程
  • 失控发票补完税还追究吗
  • 自主研发全流程
  • u盘如何装系统win7
  • 暂存款转结余
  • iphone6s显示4g却无法上网
  • 异地使用支票的提示付款期限
  • window10为什么右键就卡住
  • pqhelper.exe是什么进程 pqhelper进程查询
  • 个人所得税如何计算
  • 个人销售自建自用住房解读
  • php时间戳转换中国标准时间
  • 政府补贴款计入什么科目是否纳税
  • 西部大开发税收优惠政策是什么时候开始的?
  • 出口企业要缴纳印花税吗
  • thinkphp5教程
  • 暂估价是单价还是总价
  • 小企业准则季度汇总
  • 收到的赔款,罚款怎么算
  • 当月增加的房产 要交房产税吗
  • 购进商品发生溢余的核算
  • 如何更好的使用银行承兑汇票
  • 应税服务项目减除清单0申报如何填写
  • 前端必学
  • 发票丢失如何处理入账
  • mysql索引之间的区别
  • 货物退回并补货什么意思
  • 购买服务费用
  • 租房交付确认书
  • 水电费没有收到怎么处理
  • 合伙企业怎么注册公司持股人
  • 专项应付款转入资本公积的规定
  • 小规模纳税人开专票税率是多少?
  • 企业垫付是什么意思
  • 公司领导培训费用标准
  • 付款凭证怎么写样本
  • 先清卡后报税影响申报吗
  • 投资性房地产摊销从什么时候开始
  • 应收账款增加说明企业什么
  • 物流行业货币资金占比
  • sql server数据表
  • centos vsftpd配置
  • u盘安装启动盘
  • linux ll不能用
  • 安装完xp系统直接黑屏怎么办
  • Linux操作系统中怎么永久设置环境变量?
  • win7电脑flash安装教程
  • unity如何合并物体
  • java物流管理系统
  • 合并一个文件夹下多个工作簿
  • jQuery实现磁力图片跟随效果完整示例
  • android监听app启动
  • 跟踪子弹
  • unitymol
  • javascript的含义和作用
  • android网络访问异常提示有哪些
  • 云南省国家税务局
  • 进项税跨月转出
  • 网上税务局网址
  • 遂宁市国家税务局
  • 个人所得税税率表及速算扣除数
  • 欠账6万怎么还
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设