JavaA2Z

KAB-studio > プログラミング > JavaA2Z > フレームワークとは

フレームワーク

日本語 枠組
英語 framework
ふりがな ふれーむわーく
フリガナ フレームワーク

解説

プログラムの「枠組み」を提供するライブラリ
ライブラリの一種。「パーツ」ではなく、「枠組み」を提供する。
 
フレームワークを利用するプログラムは、フレームワークの「外壁」となるクラスや「隙間」を埋めるクラスを作成する。
フレームワークは、どの機能も共通で利用する共通部分を提供する。プログラムには様々な機能でも共通して使用する部分があり、その部分をフレームワークによって処理する。
そして、機能によって異なるクラスのみを作成する。具体的には、フレームワークで使用されているクラスオーバーライドしたり、XMLファイル等を使用して登録をい、作成したクラスがフレームワークから使用されるようにする。
 
フレームワークを使用することで、数多くのメリットがある。
共通部分にフレームワークのクラスを使用することで、プログラムを重複して作成する無駄を省き、複数のプログラマーが作成する際の質の平均化を促進する。
作成するクラスは全体の一部分となるため、全体の工数が下がり、必要とする知識も少なくて済むため、プログラムの製作が簡易になる。
 
ただし、フレームワークはそれぞれ強い癖があり、まずはその癖を理解する必要がある。
フレームワークに接続するクラスはフレームワークのルールに従う必要があり、そのルールをまず理解する必要がある。それは単純なルールではなく、概念的に難しい場合もあるため、担当する全てのプログラマーが理解するための時間が必要となる。
また、フレームワークには得意な分野、不得意な分野があり、フレームワーク内部のプログラムをカスタマイズできない場合、「一から作ればできたことがフレームワークではできない」ことも多い。
そのため、フレームワークの導入には、そのフレームワークに対する十分な知識が必要となる。知識なく不用意に導入すると痛い目にあう。
だが逆に、その知識を誰も得ようとしないため、現場ではフレームワークの導入に消極的になりがちであり、効率な作業の妨げともなっている。
 
Javaのフレームワークとして最も有名なものとしては、Webアプリケーション用フレームワーク「Struts」だろう。Struts以外にも、Jakartaプロジェクトにはいくつかのフレームワークがある。
また、J2SEコレクションを「コレクションフレームワーク」と言い、これもフレームワークの一種となっている。
 
ただし、この「コレクションフレームワーク」の例からも分かるとおり、フレームワークとライブラリの境界は曖昧である。フレームワークとしての機能を持つライブラリも多いため、「フレームワーク」という名前が付けられていても、フレームワークがメインの機能とは限らない場合も多い。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

「やっぱフレームワークって言ったらStrutsだよね」
「フレームワークのお手本みたいなもんだからな」
「ってゆーかコレクションフレームワークはフレームワークじゃないでしょ」
「そうなのか?」
「むしろAWTやSwingの方がフレームワークっぽいんだけど。MFCっぽいし」
「MFCってなんだ食べもんかそれ」
「くっ……」
「やっぱフレームワークって言ったらStrutsだよね」
「フレームワークのお手本みたいなもんだからな」
「ってゆーかコレクションフレームワークはフレームワークじゃないでしょ」
「そうなのか?」
「むしろAWTやSwingの方がフレームワークっぽいんだけど。MFCっぽいし」
「MFCってなんだ食べもんかそれ」
「くっ……」

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/10/13
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。