Лучший вариант для управления классами модулей

Моя игровая база состоит из серии модулей, организованных как классы, которые создаются, обновляются и взаимодействуют при необходимости.

Несколько примеров могут быть be: CWindowManager , CGraphicsManager , CPhysicsManager и т. д.

Мне стыдно сказать, что в настоящее время я использую для них глобальные указатели ( extern CWindowManager * g_WindowManager; ), и я знаю, что это, вероятно, плохой поступок.

В любом случае, дело в том, что эти модули нужно создавать и удалять динамически, и что в правильный порядок конечно. Также существует проблема, что такие модули, как CPhysicsManager , зависят от сцены, поэтому они удаляются при переключении сцены, а затем создаются заново.

Теперь я бы хотел отказаться от использования глобальных объектов для работы с модулями в моей игре.

Я не боюсь рефакторинга, но я действительно не могу придумать, что было бы лучшей альтернативой глобальным переменным.

Я подумал о создании класса CModuleManager и хранении экземпляров модули там как члены, которые затем являются производными от базового класса CModule. Хотя я не могу представить, как это будет работать в деталях.

Это похоже на обычную проблему при разработке программного обеспечения и особенно разработки игр, поэтому:

- Какой вариант управления модулями лучше всего по сравнению с простым с помощью глобальных указателей?

6
задан jgauffin 22 August 2011 в 14:07
поделиться