我正要开始将一个相对较大的游戏从iPhone Obj-C移植到平台中立的C++。在我们的游戏中,我们大量使用NSNotificationCenter
来通知我们服务器的菜单和下载游戏项目以及缓存更新。将NSNotificationCenter设计模式移至C++进行移植?
我正在考虑使用单例类重新创建NSNotificationCenter
,然后让任何接收通知的类继承使用多继承的NotificationReceiver
基类。单身人士会保留通知名称的Map
,以保持指向基类的指针数组。当通知被发送时,它会在可能被覆盖的接收器的基类中调用一个虚拟成员。
有没有更好的设计模式在C++中用于这种类型的操作?
会有更好的实现方法吗?
为什么它不需要是单身?我能想到的唯一的其他选项是使其成员和函数全部是静态的......如果我不想使用默认类型(如在Obj-C中所做的那样),单例模式还可以让我创建其他通知中心, 。 – David 2012-07-08 16:45:00
@David:如果您需要对特定实例进行全局访问,那么您可以通过静态方法等使用全局访问或便捷访问来解决问题 - 很少有必要强制将类限制为只有一个实例。 – 2012-07-08 16:48:35
@David:同样值得注意的是'NSNotificationCenter'也不是单身人士 - 你可以访问不同的实例,它只是提供了对进程默认通知中心的方便访问。 – 2012-07-08 16:56:06