前回から引き続いてMVCの話題。
さんざん語り尽くされている話題ながら、上記記事を参考にWebアプリケーションのMVCを考える。
1.はじめに
MVCモデルによるGUIアプリケーション作成の流れは、Webアプリケーションに対しても影響を与えていった。
WebMVCやMVC2と呼ばれたりするものだ。
MVC2は俗称であり、下記などで用いられた「model 2 Architecture」という言葉から派生した言葉なのではないかと言われている。
2.WebMVC
WebアプリケーションにおけるMVCの実装は下図の流れ。
通常のMVCモデルとの変更点は以下の通り。
- 入力、出力を行うのがウェブブラウザとなっている
- HTTPは静的なコンテンツであるため、ビューからモデルの通知を受け取りデータを更新するObserverパターンが廃止される*1
- ビューは表示を行う部分ではなく、HTMLを生成し、ブラウザにレスポンスを返す部分となっている。
3.番外
また、ここで同じようにWebMVCとして同じような扱いを受けるモデルが登場し始める。
前述した記事でPHPerのMVCと言われていた下記だ。
ビューをあくまでテンプレート(HTMLのひな形)とし、モデルで操作・取得したデータをコントローラー内でビューに設定していく形となる。
このような設計を用いた場合、各オブジェクトにおける動作を分離するというMVCの基本的な概念から外れたものとなり、
機能や記述がコントローラーに依存し、肥大化した「ファットコントローラー」と呼ばれる状態になってしまいやすい。