そのへんのちらしのうら

調べたこと、学んだこと、おもしろかったこと。

【メモ】MVCモデルについて

そもそも「○○モデル」とは

システム開発の世界において「○○モデル」といったときは、「ある仕組みの特徴やふるまいを抽象化したもの」を指す。
MVCモデル」は、GUIアプリケーションを実現するための模範的な構造のひとつであり、開発の際のお手本、ガイドラインになる。

 


MVCモデルの構成要素

MVC」は構成要素の頭文字をとってつなげたもの。
それぞれの要素の役割分担は次のようになっている。
(なお、下記の【実装】は、JSP+ServletによるWebアプリケーションにおいてよくある実装の構成要素)


Controller


【役割】受付・指示
ユーザーからの要求を受け取り、処理の実行をモデルに依頼し、その結果の表示をビューに依頼する。
【実装】
Servlet

だいたい、クライアントからのリクエスト(コマンド)に応じて、ControllerからModelに実装したメソッドを呼び分ける、という設計にしていることが多いと思う。

 

Model


【役割】実務
アプリケーションの主たる処理(計算処理など)やデータの格納を行う。
【実装】
POJOクラス(主にビジネスロジック
・JavaBeans(主にデータの格納)


HTMLフォームのフィールドの構造をJavaBeansで表したものを「フォームクラス」と呼ぶ場合がある。
フレームワークによっては、フォームクラスを使って値を勝手にバインディングしてくれる機構を持つ場合もある。バインディングの仕組みを大まかに説明すると、
・フォームクラスのオブジェクトが保持するデータを、ViewのJSPなどのHTMLに表示する(ここはViewで実装)。
・HTMLフォームの入力値をフォームクラスのオブジェクトに設定する(Controllerか、それに類する箇所で実装)。

 

View


【役割】表示
ユーザーに対して画面の表示を行う。
【実装】
JSP


役割を意識して設計・実装することで、
・どこに何を書いたら良いかわかる。どこに何が書かれているか見当がつきやすい。(自分だけでなく、他の人にも)
・要素間で結合度を疎にしやすいので、変更に強くできる。
といったメリットがある。

 

参考

スッキリわかるサーブレット&JSP入門 第2版 (スッキリシリーズ)

スッキリわかるサーブレット&JSP入門 第2版 (スッキリシリーズ)