0

Java でしばらくコーディングし、Graphics2d を使用した後、C++ などの他の言語で学んだことを使用することを考えました。私は通常 SFML を使用し、他のクラスの SFML への依存を減らすために Render クラスを持っています (たとえば、ライブラリを切り替える必要がある場合、無関係なクラスの多くのコードを切り替える必要はありません)。この Render クラスに RenderWindow を継承させるべきか、それとも単純にメンバーとして持つべきか疑問に思っていました。

4

1 に答える 1

0

現在よく提案されているイディオムは、'composition over inheritance' です。何をしているのかについてのあなたのあいまいな説明から、正確な答えを出すことは実際には不可能です. フレームワークと任意のグラフィックス ライブラリとの間の単純なインターフェイスについて話していると仮定しています。

その場合、答えは非常に簡単です。なぜなら、継承によってレンダリングの API が自動的に変更され、使用するグラフィック ライブラリごとに変更され、その目的全体が無効になるからです。したがって、メンバー変数として使用すると、フレームワーク用の安定した API を作成し、レンダー クラスのスコープ内でさまざまなライブラリのすべての適応を行うことができます。

于 2013-02-13T04:47:07.233 に答える