ソフトウェア エンジニアリング/アーキテクチャの観点からの"正しい"答えは、必要な特定のリソースをパラメーターとしてメソッドに渡すことです。これには多くの利点があります。おそらく最大の利点は、コードのさまざまな部分を分離して、それぞれを独立して使用できるようにすることです。
例を挙げると、あなたは自分のゲームを持っているかもしれません。しかし、同じコードを使用して、エディター、単体テスト、またはその他のクレイジーなツールを作成したい場合があります。Game
これらのケースの多くでは、クラスさえ持っていない可能性があります。(具体的な例を挙げると、私のこのビデオでは、同じゲーム コードを実行する 2 つの非常に異なる方法を示しています。これは、適切な分離がなければ不可能です。)
(これに基づいて、おそらく から派生したクラスよりも具体的なものを渡す必要がありますGame
。)
バージョン管理/依存関係の要件がかなりオープンである場合は、さらに一歩進んで を渡すことができますIServiceProvider
(たとえば、これは XNA が のコンストラクターに渡すものですContentManager
)。この回答で、なぜこれを行うのかについて詳細な分析を行いました。
でも
サードパーティが使用するライブラリを作成していません。あなたはゲームを書いています。あなたのコードを使用するのはあなた自身のチームだけです。あなたはソース コードにアクセスでき、自由に変更できます。
これは、いくつかの近道を自由に取ることができることを意味します。
実際には、通常、ゲーム クラスの静的インスタンス、または (これは、何かを一緒に投げる場合に推奨する方法です) ゲーム クラスの静的プロパティを取得することで問題ありません。XNA では、実際にはゲーム クラスのインスタンスが 1 つしかないことがわかっています。
最初にこれを行うのは迅速かつ簡単です。また、後で「正しい」方法に切り替えるのも迅速かつ簡単です。あなたがそれに備えている限り。ここでは、適切なバージョン管理と Visual Studio での「すべての参照の検索」の使用が特に役立ちます。
基本的に: ショートカットを使用していること、なぜそれを使用しているのか、および「正しい」方法が何であるかを理解している限り、そのショートカットを使用しても問題ありません。