位置: 编程技术 - 正文

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

  • 什么是价内税不是重复了吗
  • 生产企业的基础设施是指
  • 个体工商户必须缴纳社保吗
  • 企业购买的财产险可以在企业所得税前扣除
  • 权益性支出与收益性支出区别
  • 银行承兑贴现的会计分录怎么做
  • 小规模纳税人办公场地要求
  • 餐饮通用机打发票可以报销吗
  • 取得的进项发票当月不抵扣怎么做账
  • 准予在以后年度结转扣除的项目
  • 材料成本差异会计
  • 购买商品加包装后出售账务处理
  • 车改补贴是否计入工资总额
  • 单位员工借款的认定
  • 印花税这个月没交下个月补报可以吗?
  • 申报增值税附表二代不出数据
  • 办公设备的税收编码
  • 小规模纳税人减免增值税会计处理
  • 税收编码3040203
  • 个人买卖二手房交什么税
  • 企业所得税优惠事项包括哪些?
  • 个人所得税任职受雇信息有影响吗
  • 电商退款
  • 售后回租产生的利息怎么做账
  • biospwds最新版
  • system进程有什么用
  • 纳税确有困难标准
  • 删除桌面上的图标用什么键
  • 司机公里补助用不用交个税
  • win11怎么更改系统日期
  • sessmgr.exe - sessmgr是什么进程 有什么用
  • PHP:mb_parse_str()的用法_mbstring函数
  • PHP:preg_replace()的用法_PCRE正则函数
  • auepuc.exe是什么软件
  • 房产增值税计算公式2022最新
  • lvgl使用
  • php生成html
  • Stable Diffusion 准确绘制人物动作及手脚细节(需ControlNet扩展)
  • PHP:imagelayereffect()的用法_GD库图像处理函数
  • 医疗知识科普图片
  • jsp使用教程
  • 销售提成占比
  • ufw 设置
  • python单链表的创建
  • 消防工程材料费用占比
  • 未开票要交增值税吗
  • 公司贷款买车有什么风险
  • 结息会计凭证怎么写
  • 联营企业与合营企业纳入合并吗
  • 消费税会计处理的设置
  • 对账结算流程
  • 商业承兑汇票如何承兑?
  • 金蝶制造费用明细如何查询
  • 公司利润太高了怎么办
  • centos cmake安装
  • centos叫什么
  • ubuntu更新设置在哪
  • mac声音无法调节
  • linux查inode
  • windows7与xp
  • windows引导坏了怎么办
  • win7怎么关闭自带键盘
  • 第三方win7系统哪个最好
  • linux sendmail发送邮件
  • win8如何调屏幕亮度
  • 支持google play
  • android 一个activity多个layout
  • 批处理常用命令总结
  • ReactNative之FlatList的具体使用方法
  • js原生实现call
  • java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系
  • javascript运用
  • nodejs model
  • python右斜杠怎么打出来
  • 房地产企业税种认定标准
  • 企业承包经营责任制
  • 租车费为何不能抵扣
  • 加强案件查办工作方案
  • 增值税专用发票增额需要什么资料
  • 贵阳市税务电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设