概述:这个C++示例演示了发布者-订阅者模式的基本实现。通过 `Event` 类,发布者 `Publisher` 发送数据,而订阅者 `Subscriber` 订阅并处置惩罚数据。通过简单的回调机制,实现了组件间松散耦合的消息传递。
好的,我将为你提供一个简单的C++实例,演示如何使用发布者-订阅者模式。在这个例子中,我们将使用C++11的标准库中的 头文件,以及线程支持。
首先,我们定义一个简单的变乱类,该变乱类将用于携带消息:- // Event.h
- #pragma once
- #include <functional>
- template <typename... Args>
- class Event {
- public:
- using Callback = std::function<void(Args...)>;
- void subscribe(Callback callback) {
- callbacks_.emplace_back(std::move(callback));
- }
- void notify(Args... args) const {
- for (const auto& callback : callbacks_) {
- callback(args...);
- }
- }
- private:
- std::vector<Callback> callbacks_;
- };
复制代码 接下来,我们定义一个发布者类,它将包含一个变乱对象,并提供一个方法来触发该变乱:- // Publisher.h
- #pragma once
- #include "Event.h"
- class Publisher {
- public:
- Event<int> onDataReceived;
- void sendData(int data) {
- // 假设在这里进行一些数据处理
- onDataReceived.notify(data);
- }
- };
复制代码 然后,我们定义一个订阅者类,它将订阅发布者的变乱并定义处置惩罚函数:
[code]// Subscriber.h#pragma once#include "Event.h"#include class Subscriber {public: void processData(int data) { std::cout |