私のゲーム ベースは、クラスとして編成された一連のモジュールで構成されており、これらは必要に応じて作成、更新、および対話します。
CWindowManager
、、、CGraphicsManager
などの例がいくつかありCPhysicsManager
ます。
私は現在、それらにグローバル ポインターを使用していると言わざるを得ないことを恥じています ( extern CWindowManager* g_WindowManager;
)。これはおそらく悪いことだとわかっています。
いずれにせよ、これらのモジュールは動的に作成および削除する必要があり、もちろん正しい順序で行う必要があります。また、モジュールライクCPhysicsManager
はシーンに依存するため、シーンが切り替わると削除され、再度作成されるという問題もあります。
ここで、ゲーム内でモジュールを操作するためにグローバルを使用するのをやめたいと思います。
私はリファクタリングを恐れていませんが、グローバルに代わる最良の方法は何かを本当に考えることはできません.
CModuleManager クラスを作成し、そこにモジュールのインスタンスをメンバーとして格納し、CModule 基本クラスから派生させることを考えました。これがどのように機能するかについては、詳細には考えられませんが。
これは、ソフトウェア開発、特にゲーム開発における一般的な問題のようです。
- 単純にグローバル ポインターを使用する場合と比較して、モジュールを管理するための最良のオプションは何ですか?