Javaに関する様々な情報をご紹介します。

1開発モデルMVC2

Javaに関する様々な情報をご紹介します。

開発モデルMVC2

このページでは、開発モデルMVC2について解説します。MVC2とは、JavaでWebアプリケーション開発を行う上で推奨されている開発モデルです。

MVC2

MVC2とは、Webアプリケーションの構成要素をModel-View-Controllerの3つに分け開発する開発モデルです。3つの要素はプログラムの構造上独立しているため、あるプログラムの変更が、他のプログラムへ大きな影響を与えるということはありません。MVC2に沿わずに開発を行った場合は、該当するプログラムの変更が、他のプログラムへ大きな影響を与える可能性が高くなり、プログラム開発上効率的ではありません。

Model-View-Controllerのそれぞれの役割と、それぞれの役割を担うJavaコンポーネントは以下のようになります。

Model(JavaBeansにより実装)
データ保持、DBの接続・操作などを担う部分です。
View(JSPにより実装)
リクエストに対する実行結果の表示を担う部分です。Modelと連携しデータの取得、更新を行います。
Controller(サーブレットにより実装)
プログラムの制御を担う部分です。 リクエストにあわせ適切なModel、Viewを呼び出し、処理を実行します。すべてのリクエストは一旦Controllerで受け、そこから適切なModel、Viewが呼び出されます。
Javaの道_MVC2

※ すべてのWebアプリケーションが厳密に開発モデルMVC2に沿って開発されるというわけではありません。簡易なWebアプリケーションの場合は、MVC2に沿わない方が、簡潔に開発できる場合もあります。ただ、多くの場合において、MVC2に沿って開発を行ったほうが、開発効率、保守性などにすぐれたWebアプリケーションを開発することができます。

MVC2の開発例

MVC2を使用した開発例と、MVC2の利点について解説します。

Webブラウザに1~10までの数字を入力し、5以上であればSuccess画面と入力した数字を、5未満であればFailure画面と入力した数字を表示するプログラムを作成します。各機能をJavaコンポーネントに当てはめると以下のようになります。

サーブレット(Controller)
Webブラウザで入力されたデータがまず初めに送信される部分です。HTMLのFORM画面の「送信」ボタンの転送先にサーブレットプログラムが指定されていると想像してください。ここでは、「入力された数字を保存するためのModelの呼び出し」、「数字の確認」、「確認された数字により適切なViewの呼び出し」の3つの処理を行います。
JSP(View)
実行結果を表示する部分です。ここではSuccess画面を表示するJSPファイルと、Failure画面を表示するJSPファイルの2つを用意します。どのJSPファイルが呼び出されるかはサーブレットの処理によります。それぞれのJSPファイルでは、「入力された数字をModelから取得する」処理を行います。
JavaBeans(Model)

データを保持する部分です。ここでは、「入力された数字を保持する」処理を行います。

このプログラムを作成した後に、入力された数字に円をつけて(例えば5円など)表示するように変更したいという要望が出た場合、どのようにプログラムを変更するかを考えます。MVC2に沿って開発している場合はプログラムのそれぞれの機能が独立しているため、JavaBeansの「入力された数字を保持する」の処理を「入力された数字に円を付けて保存する」に変更するだけで対応できます。

Javaの道_MVC2の開発例_1

MVC2に沿って開発していない場合、例えばJSPだけでJavaBeansが行うべき処理も行っていた場合は、Success画面に対する「入力された数字に円を付けて保存する」とFailure画面に対する「入力された数字に円を付けて保存する」というふうに、関連のある箇所すべてを変更する必要があります。今回の例では単純に入力された数字に円をつけるという処理でしたが、プログラムが複雑になると、MVC2に沿って開発していないことによるデメリットが大きくなる場合もあります。

Javaの道_MVC2の開発例_2

1開発モデルMVC2