19

フレームワークは一般的なコードを抽象化することを可能にしますが、完全な方法ではありません (例: ネットワーク接続を抽象化しますが、データで実際に行うことはできません)。特定の一般的な要件は解決しませんが、ツールキットには一般的なコードに対するソリューションがあります。問題 (例: ダイアログ ボックス ウィジェット)?

実世界の例:プロトタイプは「フレームワーク」ですが、Dojoは「ツールキット」です。

だから私の質問は、何かをフレームワークと呼ぶのとツールキットと呼ぶのとの基準は何ですか?

4

3 に答える 3

26

Inversion of Controlに関する彼の記事で Martin Folwer を引用します。

制御の反転は、フレームワークがライブラリと異なる点の重要な部分です。ライブラリは基本的に、呼び出すことができる関数のセットであり、最近では通常クラスに編成されています。各呼び出しは何らかの作業を行い、制御をクライアントに返します。

フレームワークは、より多くの動作が組み込まれた、いくつかの抽象的な設計を具現化します。それを使用するには、サブクラス化するか、独自のクラスをプラグインして、フレームワークのさまざまな場所に動作を挿入する必要があります。フレームワークのコードは、これらのポイントでコードを呼び出します

つまり、大きな違いは、コードがライブラリを呼び出し、フレームワークがコードを呼び出すことです。

于 2009-09-12T19:57:00.447 に答える
12

フレームワークは、開発者にいくつかの設計パターンを適用し、コード生成用のツールを提供します。これは、特定のスタイル/パターンでコードを生成するため、最初の文にぴったりです。
ライブラリは、必要に応じて使用できる機能を提供します。C の stdio 関数、C# のコンソール、PHP の「組み込み」関数など
のように ライブラリは一種の API と見なすことができます

于 2009-09-12T17:08:37.567 に答える
9

私の本では、フレームワークは構造を提供し、特定の方法で使用することを奨励または要求します。これは、多くのことを自動化する方が簡単であるため、開発者がフレームワークの方法で物事を行いたい場合は良いことですが、開発者がフレームワークの意図から逸脱したい場合は悪いことです。

一方、ツールキットは、一緒にまたは個別に使用できるさまざまなツールを提供します。より柔軟ですが、プログラマーに代わってより多くの労力を必要とします。

于 2009-09-12T17:12:43.570 に答える