1

我正要开始将一个相对较大的游戏从 iPhone Obj-C 移植到平台中立的 C++。在我们的游戏中,我们大量使用了NSNotificationCenter通知菜单和游戏项目下载和缓存更新从我们的服务器。

我正在考虑使用单例类重新创建NSNotificationCenter,然后让任何接收通知的NotificationReceiver类使用多重继承继承一个基类。单例将保留一个Map通知名称,该名称将保留一组指向基类的指针。发送通知后,它将调用接收者基类中的一个虚拟成员,该成员可以被覆盖。

对于这种类型的操作,在 C++ 中是否有更好的设计模式?

会有更好的方法来实现这一点吗?

4

2 回答 2

1

会有更好的方法来实现这一点吗?

是的 - 如果您使用例如,则无需强制继承特定接口:

另请记住,如果您只需要通知中心的单个实例,则不需要是 singleton

于 2012-07-08T16:32:19.320 回答
1

除了上述boost软件包之外,另一种选择是poco::NotificationCenter.

这个实现更接近于 Cocoa 通知框架,具体讨论在 Poco 的文档中:

NotificationCenter 类基本上是在 Apple 的 Cocoa(或 OpenStep)中找到的 NSNotificationCenter 类的 C++ 实现。

于 2015-02-06T14:19:36.173 回答