C++ C+中的对等对象通信+;

C++ C+中的对等对象通信+;,c++,C++,必须设计一个在对等对象之间建立通信的infra。 这里所有的经理都是同龄人,没有人认识彼此。经理订阅活动,其他经理发布。经理没有其他经理的参考,他们只发布和订阅。主管只创建那些经理 有没有关于设计这样的infra的建议,使管理者能够将事件发送给其他人??? 观察观察者模式。如果您在将其应用于您的问题时遇到问题,请告诉我,我将引导您走上正确的道路。Boost.Signals2解决方案: #include <boost/signals2/signal.hpp> #include <

必须设计一个在对等对象之间建立通信的infra。 这里所有的经理都是同龄人,没有人认识彼此。经理订阅活动,其他经理发布。经理没有其他经理的参考,他们只发布和订阅。主管只创建那些经理

有没有关于设计这样的infra的建议,使管理者能够将事件发送给其他人???


观察观察者模式。如果您在将其应用于您的问题时遇到问题,请告诉我,我将引导您走上正确的道路。

Boost.Signals2解决方案:

#include <boost/signals2/signal.hpp>
#include <boost/bind.hpp>
#include <iostream>

using namespace boost;
using namespace std;

class Manager{
public:
    signals2::signal<void ()>    *Msg;
    void Foo() { cout << "Foo" << endl;}    
};

class Director{
public:
    Manager CreateManager() { return Manager();}
};

int main()
{
    Director dir;
    Manager m1 = dir.CreateManager();
    Manager m2 = dir.CreateManager();

    m1.Msg = new signals2::signal<void ()>();
    m1.Msg->connect(bind(&Manager::Foo, &m2));
    (*m1.Msg)();
}
#包括
#包括
#包括
使用名称空间boost;
使用名称空间std;
班级经理{
公众:
信号2::信号*味精;

void Foo(){cout Try with Boost.SignalsObserver模式将有助于经理与主管之间的沟通。但我需要彼此不了解的同行之间的沟通。@cpp..不幸的是,我们没有按照业务规则使用Boost库的规定..而且,我看到经理直接与其他经理连接。这里有什么好处?