我正要開始將一個相對較大的遊戲從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