- フレームワークとは、特定のソフトウェア問題を解決するクラスやインターフェースの集まり であり
- それらのクラスやインターフェースは、何らかの抽象概念を表す。
- フレームワークは、ハイレベルのパターン、つまりアーキテクチャを構成しており、これにより、上の抽象概念を表現するクラスやインターフェースの相互作用を定義している。
フレームワークをアプリケーション開発に使用する場合、そのアプリケーションはフレームワークが解決する『特定のソフトウェア問題』に合致していなくてはならない。つまり、アプリケーションはフレームワークが提供するアーキテクチャに相応しいものでなければならない。その場合に、フレームワークが構成しているアーキテクチャを再利用できるということだ(アーキテクチャの再利用)。
アプリケーション開発者は、アプリケーションの特定の機能を実現するために、フレームワークを構成している抽象概念を拡張・実装することができる。したがって、これらの抽象概念を表現しているクラスやインターフェースは、フレームワークを拡張する拡張点とよぶことができる。
いうなれば、フレームワークとは、不完全なアプリケーション であって、アプリケーション開発者は、その不完全な部分を補うことでアプリケーションを開発する。フレームワークが提供する部分は再利用することができるので、その分、負担が軽減するというわけだ。
ライブラリとの違いは何か?ライブラリにはアーキテクチャは含まれない。これが大きな違いだ。
フレームワークはアーキテクチャを含んでおり、アプリケーションはそのアーキテクチャを再利用する。アーキテクチャは抽象概念の相互作用を定義しており、アプリケーションが拡張した抽象概念は、そのアーキテクチャにしたがって制御されることになる。
ライブラリの場合はアプリケーションのコードからライブラリが呼ばれるのに対して、フレームワークでは、フレームワークからアプリケーションのコードが呼ばれる。このことを 制御の反転 とよぶ。
2 comments:
eh.. nice thoughts :))
hm. amazing thread..
Post a Comment