Webシステム

【初心者向け】JavaのMVCモデルとは?意味やその構成を解説!

JavaのMVCモデルの意味や構成説明

Javaを使ったWebアプリケーションの学習をして出てくる概念が、「MVCモデル」です。

これは、「Javaプログラムを、役割ごとに部品化しましょう」という考え方です。

それでは、詳しく説明していきます!

MVCモデルとは?

MVCモデルとは、Webサーバ内のプログラムを、M(Model)、V(View)、C(Controller)の役割に分ける設計手法です。

M,V,Cは、それぞれどのような役割を果たすのでしょうか。

これら独立したM,V,Cが連携することで、Webアプリケーションが成り立ちます。

では、なぜわざわざ独立させる必要があるのでしょうか。次に、MVCモデルを採用するメリットについて説明します。

MVCモデルのメリット

MVCモデルを採用せずにWebアプリケーションを作るとどうなるでしょうか。

Webアプリケーションのプログラムには、
・クライアント(Webブラウザ)からリクエストを受け取る。
・リクエストに対応するデータを、データベースから取得する。
・データをhtmlファイルに変換して、クライアントへ返す。
 etc...
などの処理があります。これらの処理が、何回も行われるわけです。

MVCモデルで処理のプログラムを部品化せず、1つのプログラム内に記述しようとすると、同じような処理を何度も記述しなければなりません。これには、以下のような欠点があります。
・例えば、データベースの構造が変更されたときに、データベースアクセスの処理を全て書き換えなければならない。(保守性が悪い)
・他のアプリケーションでもこのプログラムを使いたいときに、必要ないものが含まれていることがある。
(再利用性が悪い)

つまり、MVCモデルに則って設計すると次のようなメリットが得られるのです。

● 保守性の向上
 データベースの構造に変更があった際、M(Model)のみを変更すればよい。

● 再利用性の向上
 M,V,Cに分離させることで、他のシステムからも必要な機能(M or V or C)を呼び出すことができる。

WebアプリケーションのMVCモデル構成

Webアプリケーションは、大きく分けてクライアントであるWebブラウザと、サーバであるWebサーバと、データベースに分かれます。

そのWebアプリケーションを、MVCモデルで書いたものが次の図です。

WebアプリケーションのMVCモデル構成
プレゼンテーション層

C(Controller)とV(View)が担当します。
プレゼンテーション層は、クライアントとサーバとのやり取りを制御します。クライアントとあるWebブラウザからのリクエストを受け付けて、適切な業務処理を呼び出します。業務処理の結果に応じた画面を、Webブラウザに返します。

ビジネス層

M(Model)が担当します。
業務に必要な処理を実行します。

インテグレーション

M(Model)が担当します。
データベースへアクセスします。