フレームワークでは汎用コードを抽象化することができますが、完全な方法ではありません(例:ネットワーク接続を抽象化しますが、データで実際に行うことではありません)。一般的な問題(例:ダイアログボックスウィジェット)フレームワークとツールキットの主な違いは何ですか?
実例:Prototypeは「フレームワーク」ですが、Dojoは「ツールキット」です。
私の質問は、何かフレームワークをツールキットと呼ぶものと呼ぶ基準は何ですか?
フレームワークでは汎用コードを抽象化することができますが、完全な方法ではありません(例:ネットワーク接続を抽象化しますが、データで実際に行うことではありません)。一般的な問題(例:ダイアログボックスウィジェット)フレームワークとツールキットの主な違いは何ですか?
実例:Prototypeは「フレームワーク」ですが、Dojoは「ツールキット」です。
私の質問は、何かフレームワークをツールキットと呼ぶものと呼ぶ基準は何ですか?
フレームワークは、開発者にいくつかのデザインパターンを適用し、コード生成のためのツールを提供します。これは、特定のスタイル/パターンでコードを生成するので、私の最初の文でうまくいきます。
ライブラリには、必要に応じて使用できる機能が用意されています。 Cのstdio関数と同じように、 コンソールのC#の、あなたは私の本の中でAPI
の一種として図書館を考えることができ
PHPなどの機能「に建て」、フレームワークは、構造を提供し、奨励したり必要ですそれは特定の方法で使用されるということです。開発者がフレームワークのやり方をしたいのであれば、これは良いことがあります。なぜなら、多くのことが自動化する方が簡単だからです。しかし、開発者がフレームワークの意図から逸脱したいのであれば、悪いことがあります。
一方、ツールキットは、一緒にまたは別々に使用できるさまざまなツールを提供します。より柔軟性がありますが、プログラマに代わってより多くの労力が必要です。 Inversion of Control上の彼の記事にマーティンFolwerを引用
:
制御の反転は ライブラリに別の枠組みを作るもの の重要な部分です。 ライブラリは基本的に、 と呼ぶことができる の機能セットです。最近では クラスに編成されています。各コールはいくつかの作業を行い、 はコントロールをクライアントに返します。フレームワークが組み込まより行動で、いくつかの抽象 デザインを具現
。 それを使用するためには、に必要な自分自身の中に差し込むことにより、サブクラス化によって、または いずれかのフレームワーク にさまざまな場所に あなたの行動を挿入クラス。 フレームワークのコードは、のコード を呼び出します。
要するに、大きな違いは、フレームワークがコードを呼び出す間にコードがライブラリを呼び出すことです。