1

次の設計上の問題があります。たとえば、3 つのビジュアル スタジオ プロジェクトがあります。それらは「TheGame」、「OpenGLDevice」、および「DirectXDevice」と呼ばれます。「OpenGLDevice」と「DirectXDevice」は、プロジェクト内のクラスの名前でもあります。ご想像のとおり、TheGame はアプリケーションのロジックを処理し、他の 2 つのプロジェクトのいずれかを使用して画面に描画します。私の質問は、TheGame が 2 つのプロジェクトとどのようにやり取りするかについてです。ここに私が考えることができるものがあります。

  1. 「DeviceContainer」基本クラスと、「OpenGLDeviceContainer」および「DirectXDeviceContainer」派生プライベート 内部クラスを TheGame に作成します。派生クラスにはそれぞれ、型 OpenGLDevice または DirectXDevice のプライベート メンバー フィールドが含まれます。DeviceContainer は基本的にラッパーとして機能します。

  2. 4 番目のプロジェクトに「IGraphicsDevice」インターフェイスを作成し、3 つのプロジェクトすべてがそれを参照するようにします。OpenGLDevice と DirectXDevice の両方がそのインターフェイスを実装するようにします。

4 つ目のプロジェクトを作成する必要がなく、OpenGLDevice と DirectXDevice の両方に依存関係がないため、アプローチ 1 が気に入っています。

まず第一に、これら2つのうちどちらが最良のアプローチであり、さらに優れた3番目のソリューションがありますか.

第 2 に、インターフェイス アプローチを使用することを選択した場合、4 番目のプロジェクトでインターフェイスを宣言するよりも良い方法はありますか?

4

0 に答える 0