Java2 Enterprise Editionの基礎知識

MVCモデルという言葉をよく聞きますが何のことですか?

テンアートニ 中越智哉
2000/12/7


 J2EEを特徴づけるもう1つのキャッチコピーとして「MVCモデル」というものがあります。MVCモデルという言葉自体は、J2EEで初めて登場したものではなく、Smalltalkというオブジェクト指向言語でのGUI設計に用いられた概念です。MVCとは、

  • Model
  • View
  • Controller

の頭文字をとったものです。Webベースのアプリケーションも、WebブラウザというGUIを持ったアプリケーションと考えられるので、このモデルを適用することができます。では、それぞれについて説明しましょう。

MVCモデルに従ってWebアプリケーションを構築したモデル例

●Model
 モデルは、システムの中でビジネスロジックを担当する、いわばシステムの本体部分にあたります。モデルは入出力や表示といった処理を行うことはできません。J2EEでは、この部分をEJBで実装する(ちなみに、EJBでは表示に関する処理は仕様上できない)ことになっています。

●View
 ビューは、表示、入出力といった部分を担当します。J2EEでは、この部分はServletやJSPで実装します。一般的なHTML表示に関してはJSP、そのほかの特殊なデータ(バイナリデータ)を出力する場合はServletを用いるのが標準的な使い方です。

●Controller
 コントローラは、ViewとModelを制御します。自分自身では表示を行ったり、ロジックの実行は行わず、Viewからの入力に応じて、必要なロジックの実行をModelに依頼し、その結果表示をViewに依頼します。J2EEでは、ControllerはWeb層とEJB層の2つに分かれています。まず、Web層でViewからの入力を受け付けて、Webに依存しない形式に変換します。そしてその情報をEJB層に送信します。EJB層では、送信された内容に応じて、必要なロジックが実装されたModel(EJB)に処理を依頼します。処理結果は再びEJB層からWeb層へフィードバックされ、Web層がView(JSP)に表示処理を依頼し、クライアントへ結果が送信されます。

■MVCモデルの利点
 このモデルに従うことで、開発者にとってはどのようなメリットがあるのでしょうか?まず、機能ごとの分離が明確になることによって、それぞれの独立性が確保されます。開発においては分業がしやすくなり、各機能の専門家は自分の得意分野の実装に集中することが可能となります。また、コンポーネント間の依存性が最小限に抑えられるため、ほかの部分の変更による影響を受けにくい実装にすることができます。こうすることによって、コンポーネントの再利用性が高まるわけです。また、ほかのコンポーネントの変更が原因で、複数の担当者が同一のソースに対してメンテナンスを行う、というような事態を避けることもでき、保守性も確保される、といったような多くのメリットがあります。


「Java Solution FAQ」



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間