事件总线通过解耦发布与订阅实现组件通信,核心包含事件基类、订阅回调和分发器,支持类型安全与线程安全,适用于C++中构建松耦合系统。

在C++中实现一个事件总线(Event Bus)是构建松耦合系统的一种有效方式,尤其适用于模块间需要通信但又不希望直接依赖的场景。事件总线允许组件发布事件,并由感兴趣的组件订阅和响应,从而解耦生产者与消费者。
核心设计思路
事件总线的核心是将“发送消息”和“处理消息”的逻辑分离。它通常包含以下几个关键部分:
-
事件基类:所有具体事件继承自一个公共基类,便于统一管理。
-
订阅者接口:定义接收事件的回调机制。
-
事件分发器:维护事件类型到回调函数的映射,并负责广播事件。
-
线程安全支持(可选):多线程环境下需加锁保护共享数据。
基础实现代码
下面是一个简洁、类型安全的同步事件总线实现:
立即学习“C++免费学习笔记(深入)”;
#include