ОО Дизайн вопрос.
Я хочу унаследовать одноэлементную функциональность в разных иерархиях классов. Это означает, что они должны иметь свой собственный экземпляр singleton на иерархию.
Вот краткий пример того, что я пытаюсь сделать:
class CharacterBob : public CCSprite, public BatchNodeSingleton {
...
}
class CharacterJim : public CCSprite, public BatchNodeSingleton {
...
}
class BatchNodeSingleton {
public:
BatchNodeSingleton(void);
~BatchNodeSingleton(void);
CCSpriteBatchNode* GetSingletonBatchNode();
static void DestroySingleton();
static void initBatchNodeSingleton(const char* asset);
protected:
static CCSpriteBatchNode* m_singletonBatchNode;
static bool singletonIsInitialized;
static const char* assetName;
};
Этот код заставит Джима и Боба разделить защищенных членов BatchNodeSingleton. Мне нужно, чтобы у них был свой набор. Что было бы хорошим решением? Коллекция указателей, которые можно использовать assetName в качестве ключа?
Буду очень признателен за ваши мысли.