网站建设的数据所有权,网站app用什么语言开发,wordpress建站 外贸,建设部网站 挂证观察者设计模式#xff0c;允许对象在状态变化时通知其他依赖对象#xff0c;通常通过回调函数实现。
在回调机制中#xff0c;可以注册多个回调函数#xff0c;以便在特定事件发生时依次调用它们。下面是一个示例#xff0c;展示如何在 C 中实现一个简单的事件管理器允许对象在状态变化时通知其他依赖对象通常通过回调函数实现。
在回调机制中可以注册多个回调函数以便在特定事件发生时依次调用它们。下面是一个示例展示如何在 C 中实现一个简单的事件管理器支持注册多个回调函数。
#include iostream
#include vector
#include functionalclass EventManager {
public:using EventCallback std::functionvoid(int); // 定义回调函数类型// 注册回调函数void subscribe(EventCallback callback) {callbacks.push_back(callback);}// 触发事件调用所有注册的回调函数void triggerEvent(int value) {for (const auto callback : callbacks) {callback(value); // 调用每个回调函数}}private:std::vectorEventCallback 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当状态变化时主题会调用所有观察者的回调函数。