2011-12-13 10 views
0

これは方法論の問題のようなものです。3Dグラフィックスソフトウェアを書くときのクラス階層

オブジェクト指向ライブラリを使用してOpenGLなどを抽象化するソフトウェアを作成する場合は、OpenGLヘルパーオブジェクトを拡張して独自のビジネスロジックを追加するか、基本的なビジネスを作成するかOpenGLヘルパーをそのプロパティとして持つことができます。例えば

はのは、私はクラスを提供OpenGLライブラリを持っているとしましょう、私はビジネスのいくつかの並べ替えを持っている場合、カメラ

に直面している2Dスプライトを描画

OpenGLBillboard

そのクラスを使用してレンダリングされるオブジェクトは、単にOpenGLBillboardを拡張して上に構築することをお勧めしますか、基本的に基本クラスのプロパティであるOpenGLBillboardオブジェクトを持つだけですか私のソフトウェア?

この場合、継承のように思えるのは危険です。基本クラスが要件によって変更されなければならない場合、リファクタリングは苦痛を伴う可能性があります...私が不動産ルートに行っても、書くための定型文。

あなたの考えは?

ありがとう

P.S. "ビジネスオブジェクト"と言って私を許してください。私は、3Dに関する話題の中で「モデル」といっても大したことを言っておらず、人々が私の意味について混乱させたいと思っていませんでした。

答えて

0

個人的には、私のビジネスオブジェクトに「ビルボード」インスタンスを(個人的に)含め、OpenGLに直接結び付けることはできません。

ビジネスオブジェクトは、レンダリングを要求され、Billboardインスタンスを通じてそのメソッドをリダイレクトします。これにより、ビジネスオブジェクトをまったく変更することなく、別の実装(ビルボード以外のものを使用する場合)または別のバックエンド(つまり、Direct3Dレンダリングパイプライン)をスワップすることができます。

関連する問題