1

私は今日、Google と StackOverflow 検索エンジンを使用して自分の質問に対する答えを見つけようとしていましたが、うまくいきませんでした :)

すべてのフレームワークのエンド ユーザー向けの主要な機能とは何か、エンド ユーザーの観点からすべてのフレームワークをどのように特徴付けることができるかを考えていました (K. Cwalina による Framework Design Guidelines を調べましたが、見つけたのはフレームワーク アーキテクトの概念とガイドライン)、私にとっては:

  • それは拡張可能であるべきです
  • 拡張可能で再利用可能なコンポーネントを構築できるようにする必要があります
  • そしてもちろん、単純なものは単純であるべきであり、複雑なものは可能であるべきです。( http://en.wikiquote.org/wiki/Alan_Kay )

もっとたくさんあると思います。

あなたの知識を共有してください。

4

6 に答える 6

6

Ralph Johnson と Brian Footeからの 2 つの良い引用を次に示します。

フレームワークは、カスタム アプリケーションを作成するために特化できる、再利用可能な「半完成」アプリケーションです。

フレームワークの重要な特徴の 1 つは、ユーザーがフレームワークを調整するために定義したメソッドが、ユーザーのアプリケーション コードからではなく、フレームワーク自体から呼び出されることが多いことです。フレームワークは、多くの場合、アプリケーション アクティビティの調整と順序付けにおいてメイン プログラムの役割を果たします。この制御の反転により、フレームワークは拡張可能なスケルトンとして機能することができます。ユーザーが提供するメソッドは、特定のアプリケーションのフレームワークで定義された汎用アルゴリズムを調整します。

CACMの特集号もありましたので、そちらもご覧ください。

ここにもう 1 つのリンクThe Hollywood Principalがあります。「私たちに電話しないでください、私たちがあなたに電話します。」フレームワークが一般的なコントロールを反転して、ライブラリ コードを呼び出す代わりにフレームワークがコードを呼び出す方法について。

于 2010-07-21T01:14:05.710 に答える
0

フレームワークの決定的な特徴は何かを知りたいだけのようですね...?

FOLDOCから:

オブジェクト指向システムで、関連する多くの問題を解決するための抽象的な設計を具現化する一連のクラス。

つまり、基本的には、拡張可能な (「抽象的な設計を具現化する」) クラス ライブラリ (「クラスのセット」)、

于 2010-07-13T22:15:41.127 に答える
0

私自身の理解に基づいて定義を試みます。フレームワークは、アプリケーション プログラムのいくつかのクラスに共通するタスクのサブセットを抽象化するコード本体です。その意図は、アプリケーション プログラミングがフレームワークによって処理される一般的なタスクのコードを再発明し続ける必要がないように、一度は実証済みでテスト済みのコードを提供することです。

実生活では、プログラマーやチームが単一のアプリケーションとして始まったものを一般化して将来を保証することに夢中になったときに、フレームワークが発生することがよくあります。コードの再利用を開始するという立派な意図がありますが、そのようなフレームワークは最初から意図を持って設計されておらず、この意図を反映した一貫した設計がなく、実際には再利用されないお粗末なコードであることがよくあります。 -まったく使用されています。フレームワークを作成する資格があると感じているアーキテクトのほとんどは、そうではありません。

于 2010-07-13T22:20:49.130 に答える
0

ライブラリとフレームワークの違い: ライブラリを呼び出します。フレームワークがあなたを呼び出します。

于 2010-07-21T05:10:08.207 に答える
0

あなたの質問に十分な深さで回答することは、このフォーラムの範囲を超えています。.Net フレームワークに特化し、.Net フレームワークの設計者によって書かれていますが、この本を読むだけで十分です。この本が提供する知恵と情報は、あなたの質問に答え、好奇心を満足させるのに十分であると確信しています。件名に。

フレームワーク設計ガイドライン: 再利用可能な .NET ライブラリの規則、イディオム、およびパターン (第 2 版)

代替テキスト http://www.lybrary.com/images/0321605012.jpg

于 2010-07-21T07:11:18.840 に答える
-1

フレームワークとは、私にとって、1 つのトピックだけに関するものではないライブラリ (Boost や他の多くのような) の別の名前です (数学、ネットワークなどに関するライブラリがありますが、これらはフレームワークではありません)。もちろん、拡張可能です。そして、その機能を組み合わせて仕事をすることができます。

于 2010-07-13T22:15:36.183 に答える