位置: 编程技术 - 正文

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

  • 中了单位大奖要缴个税吗?
  • 异地存货怎么审计
  • 公司换股东需要本人去吗
  • 中税协网站怎样补学时
  • 外币账户单位基本情况表
  • 所得税年度纳税申报表 从业人数怎么填
  • 慈善捐款抵税的会计分录
  • 定额发票验旧后怎么报税
  • 税总界定超标准小规模纳税人偷税数额
  • 未交增值税金额公式
  • 销售商品开具商品单据
  • 驾驶培训费可以报销吗
  • 事业单位现金收支管理办法
  • 税收成本如何影响税收管理制度
  • 查账征收企业所得税年度申报
  • 股票授予代替工资缴税吗?
  • 什么是中型企业?
  • 独立核算分公司可以享受小型微利企业优惠吗
  • 出售股票或债券的条件
  • 企业收到票据时应以什么入账
  • 辞退员工会计分录
  • 移动通信定额发票
  • 1697509200
  • 纳税单位与免税单位共用的房屋由纳税单位全额纳税
  • 商用房的增值税是多少
  • 个人借单位的钱要交税吗
  • 库存商品淘汰报告模板
  • 苹果电脑快捷键删除
  • 采购费用应计入材料采购成本
  • 委外加工的加工费的会计处理
  • 安装win11一直转圈要多久?
  • 因有减免税款不退怎么办
  • win10远程桌面连接不成功
  • win7系统打印机在哪里
  • 如何使用rank函数排名
  • 增值税的具体内容包括
  • php修改ip地址
  • vue3父子组件传递数组通信
  • 委托开发和购买开发
  • 可供出售债权投资
  • 预付的购货款计入什么科目
  • 投资收益的核算依据
  • 财政零余额账户存款
  • 成本分配明细表
  • 非金融企业之间借款
  • 公司对自己内部的要求
  • 使用命令方式安装程序
  • 多付的账款计入什么科目
  • 申报错误要罚款吗
  • 办公室搬迁工作
  • 开票方未缴税,为何要追回付款方的退税款
  • 滴滴打车开具的普通发票可以抵扣吗
  • 车辆处置如何缴纳企业所得税
  • 免抵税额要交税吗
  • 资产负债表的资产按流动性大小排列
  • 通过一达通出口到底开什么发票
  • 小规模纳税人开专票需要交税吗
  • 事业单位工会经费不足怎么办
  • 怎样加快缩略图的大小
  • win8怎么关闭电脑
  • perl 读文件
  • cocos2dx4.0入门
  • nodejs文件操作
  • 希尔排序数据结构的代码
  • python读取文件指定内容
  • fflogs隐藏数据
  • 运行shell脚本命令 sh
  • python列表讲解
  • js遍历获取指定数据
  • unity向量的规范化
  • jqgrid 动态表头
  • js中面向对象编程
  • Qt for Android - ANT_HOME is set incorrectly or ant could not be located
  • 个体加油站税务怎么申报
  • 江苏优抚对象
  • 财税库银是什么费用
  • 税务师报考条件和时间2021湖北
  • 个体工商户如何注销
  • 计算土地增值税时下列费用准予从收入总额中扣除的有
  • 2020十大经济年度人物揭晓
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设