在两个对象之间发送消息

时间:2011-10-16 15:14:49

标签: c++ oop

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

例如:

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

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

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

基本上,服务器发送消息或本地游戏发送多态调解器所接收的消息。调解器从服务器或本地游戏获取消息。调解员将其传递给客户端,客户端对其执行任何操作。我们的想法是,调解员不应该为客户端做逻辑,因此传递消息。

1 个答案:

答案 0 :(得分:3)

我认为你需要实现Listener / Observer模式。 来自维基百科:

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

更多参考:

http://en.wikipedia.org/wiki/Observer_pattern

http://www.codeproject.com/KB/cpp/CppEvents.aspx

http://www.codeproject.com/KB/architecture/observer.aspx