これらの用語は一見同じ意味で使用されていると聞いたので、少しわかりません。例を挙げてください。
これらの用語と他の用語は非常に似ているようです。これらは概念的な観点から名前が付けられているため、次のように定義できます。
フレームワークは、連携できるようにすることを目的とした一連のライブラリのようなものです。これは、一般的なアルゴリズムやデータ構造の実装を回避する必要がないことを意味します。これらのライブラリ(フレームワーク)を使用して、それらが提供する機能が問題の解決に役立つようにライブラリを配置します。
エンジンはシステムであり、データを供給し、それが仕事をします。
ライブラリには「エンジン」を含めることができ、エンジンはフレームワークを使用して構築できることに注意してください。
AFAIKフレームワークは、アプリケーションを構築するための構造です。制御の反転があるという点でライブラリとは異なります(つまり、ライブラリでは、コードからサブルーチンを呼び出して制御できますが、フレームワークでは、サブルーチンをフレームワークにバインドし、必要に応じてサブルーチンを呼び出します-したがって、制御はフレームワークを使用します)。
エンジンはまったく異なる概念です。フレームワークとライブラリのハイブリッドです。フレームワークのように、それはアプリケーションを制御します。ただし、フレームワークとは異なり、サブルーチンをエンジンにバインドするのではなく、組み込みのAPIを使用して特定のタスク(ライブラリのようなもの)を実行します。
要約すると、フレームワークは、サブルーチンをそれにバインドすることによって拡張および調整できるアプリケーションの構造です。 OTOH、エンジンはメインアプリケーション自体であり、パブリックAPIを使用して、必要なことを実行するように簡単に指示できます。
したがって、フレームワークはより柔軟です。ただし、エンジンは機能するアプリケーションです。プログラマーが車輪の再発明に時間を費やす必要がないため、エンジンはより速く作業を完了します。彼は単にエンジンに何をすべきかを指示することができ、エンジンが内部操作を処理します。
http://indiegamesguild.com/sgtflame/2010/02/23/frameworks-vs-engines/
フレームワークは主に一連のコンポーネントインターフェイスですが、それらのコンポーネントを実装していません。フレームワークは、フレームワークを結び付けるのに役立つグルーコードを実装し、必要になる可能性のあるものにユーティリティの実装を提供します。
ゲームエンジンは、フレームワークで定義されているすべてのコンポーネントを実装します。または、少なくともゲームエンジン開発者が、ゲームエンジンを実装するために必要であると感じるすべてのコンポーネントを実装します。場合によっては、エンジンが物理やネットワークなどを必要としないことがあるため、ゲームエンジンの開発者は、これらのコンポーネントをエンジンから除外することを選択できます。
それはそれに答えますか?
フレームワークの例:
エンジンの例:
それぞれの異なるタイプの調査は手がかりを与えます...
チャールズ・バベッジによって設計された、コンピューターの概念である分析エンジン
芸術的な描画、音楽の作曲、機械的なCAD
An engine "does" the job for you.
単純な乗算プログラム。
A framework "simplifies" the job for you.
文字列をintに変換してからエンジンに提示するコードを書く代わりに、それを変換する別のコードがあります。この簡略化コードはフレームワークです。