C++ 在两个对象之间发送消息

C++ 在两个对象之间发送消息,c++,oop,C++,Oop,我有对象A和B,它们需要互相发送和接收消息 例如: 我点击,这会导致A向B发送一条消息。B用它做些什么,然后发送另一条消息作为回复 现在我的方式是, A有一个B*和B有一个A*,它们调用彼此的sendMessageTo方法进行通信 有没有更好的方法来做这类事情 基本上,服务器发送一条消息,或者本地游戏发送一条多态中介接受的消息。调解人从服务器或本地游戏获取消息。调解人将其传递给客户机,客户机对其执行任何操作。其思想是中介不应该为客户端执行逻辑,因此消息传递。我认为您需要实现侦听器/观察者模式。

我有对象A和B,它们需要互相发送和接收消息

例如:

我点击,这会导致A向B发送一条消息。B用它做些什么,然后发送另一条消息作为回复

现在我的方式是, A有一个B*和B有一个A*,它们调用彼此的sendMessageTo方法进行通信

有没有更好的方法来做这类事情


基本上,服务器发送一条消息,或者本地游戏发送一条多态中介接受的消息。调解人从服务器或本地游戏获取消息。调解人将其传递给客户机,客户机对其执行任何操作。其思想是中介不应该为客户端执行逻辑,因此消息传递。

我认为您需要实现侦听器/观察者模式。 来自维基百科:

观察者模式(发布/订阅模式的子集)是一种软件设计模式,其中一个对象(称为subject)维护其从属对象(称为观察者)的列表,并通常通过调用其方法之一自动通知其任何状态更改。它主要用于实现分布式事件处理系统

有关更多参考:


我认为您需要实现侦听器/观察者模式。 来自维基百科:

观察者模式(发布/订阅模式的子集)是一种软件设计模式,其中一个对象(称为subject)维护其从属对象(称为观察者)的列表,并通常通过调用其方法之一自动通知其任何状态更改。它主要用于实现分布式事件处理系统

有关更多参考:


为什么要费心于
发送消息
?为什么不直接在对象上调用方法呢?这是多线程的吗?记住,一个线程中的每件事都是按顺序完成的。B是抽象网络的调解人(机器人的单人游戏与人的多人游戏),为什么还要麻烦
SendMessage
?为什么不直接在对象上调用方法呢?这是多线程的吗?记住,一个线程中的每件事都是按顺序完成的。B是抽象网络的中介(与机器人的单人游戏与与与人的多人游戏)还有一个名为Boost.Signals2的Boost库,它实现了观测者模式:Signals2允许您将可调用的侦听器附加到一个信号,您可以拥有事件触发器的发布者,它将调用所有侦听器。这是一个简单的模式,但Signals2具有内置的线程安全性,还有其他一些漂亮的功能,比如聚合监听器可调用的返回值。还有一个名为Boost.Signals2的Boost库,它实现了观测者模式:Signals2允许您将可调用的监听器附加到一个信号上,您可以拥有事件触发器的发布者,它将调用所有听众。这是一个简单的模式,但Signals2具有内置的线程安全性,以及一些其他漂亮的功能,如聚合侦听器可调用项的返回值