当前位置: 首页 > news >正文

回调机制实现观察者模式

观察者设计模式,允许对象在状态变化时通知其他依赖对象,通常通过回调函数实现。

在回调机制中,可以注册多个回调函数,以便在特定事件发生时依次调用它们。下面是一个示例,展示如何在 C++ 中实现一个简单的事件管理器,支持注册多个回调函数。

#include <iostream>
#include <vector>
#include <functional>class EventManager {
public:using EventCallback = std::function<void(int)>; // 定义回调函数类型// 注册回调函数void subscribe(EventCallback callback) {callbacks.push_back(callback);}// 触发事件,调用所有注册的回调函数void triggerEvent(int value) {for (const auto& callback : callbacks) {callback(value); // 调用每个回调函数}}private:std::vector<EventCallback> callbacks; // 存储所有注册的回调函数
};// 示例回调函数
void callbackA(int value) {std::cout << "Callback A received value: " << value << std::endl;
}void callbackB(int value) {std::cout << "Callback B received value: " << value << std::endl;
}void callbackC(int value) {std::cout << "Callback C received value: " << value << std::endl;
}int main() {EventManager manager;// 注册多个回调函数manager.subscribe(callbackA);manager.subscribe(callbackB);manager.subscribe(callbackC);// 触发事件,所有注册的回调函数将被调用manager.triggerEvent(42); // 示例值return 0;
}

 在实现观察者模式时,主题对象(Subject)可以注册多个观察者(Observer),当状态变化时,主题会调用所有观察者的回调函数。

http://www.lryc.cn/news/513025.html

相关文章:

  • 并发编程系列(一) -多线程技术快速入门
  • 单元测试入门和mockup
  • 蓝桥杯(Java)(ing)
  • 【Linux-多线程】线程互斥(锁和它的接口等)
  • [江科大STM32] 第五集快速建立STM32工程模板——笔记
  • 流水线并行举例说明;GPU 的细粒度问题
  • 如何确保Kafka集群的高可用?
  • 计算机毕业设计Python+Spark考研预测系统 考研推荐系统 考研数据分析 考研大数据 大数据毕业设计 大数据毕设
  • Oracle SqlPlus常用命令简介
  • 8.若依系统监控与定时任务
  • 《计算机组成及汇编语言原理》阅读笔记:p160-p176
  • TCP网络编程(三)—— 客户端的编写/服务器端和客户端的通信
  • 如何在谷歌浏览器中使用自定义模板
  • Day2 微服务 网关路由转发、网关登录校验、配置管理
  • Android 旋转盘导航栏
  • 空域降噪、频域降噪和时域降噪
  • Cornerstone3D:了解Nifti文件,并查看元数据
  • 设计模式の状态策略责任链模式
  • DevOps流程CICD之Jenkins使用操作
  • 【玩转23种Java设计模式】行为型模式篇:备忘录模式
  • Unity Shader TexelSize的意义
  • 三、STM32MP257系列之定制Yocto Machine
  • 小程序信息收集(小迪网络安全笔记~
  • 使用 Docker 搭建 Drogon 框架
  • 【Linux报告】实训一:GNME桌面环境的设置及应用
  • 活动预告 |【Part1】Microsoft Azure 在线技术公开课:基础知识
  • vulnhub靶场【Hogwarts】之bellatrix
  • 移动 APP 设计规范参考
  • HarmonyOS:@Require装饰器:校验构造传参
  • github提交不上去,网络超时问题解决