MVCモデルとは
MVCモデルは,ソフトウェアの設計モデルの一つで,Webアプリケーションの構成要素をModel(モデル),View(ビュー),Controller(コントローラー)という3つに分割し,それぞれの機能ごとに開発・管理を行うモデル.
それぞれの役割
MVCモデルは機能によってプログラムを分けることを目的として利用されるため,それぞれに以下のような役割を持つ.
Model(モデル)
ビジネスロジックを担当する.アプリケーションが扱うデータの取得・保存・更新・削除などを行う.
ビジネスロジックとは
そのシステムにおける、システム固有の処理を行う部分で,Modelにおいて,DBの操作などを指す.
View(ビュー)
ユーザが直接見る画面の表示や入出力などのユーザインタフェースを担当する.HTMLやCSSなどを利用して実装される部分.
Controller(コントローラー)
ViewとModelの橋渡し的な役割を担当する.ViewとModelの間に位置し,ユーザからの操作を受け取ってModelを操作し,結果をViewに反映する.
メリットとデメリット
MVCモデルを利用することで,以下のメリット・デメリットがある.
メリット
○効率が良い
役割や機能別でコードを分けることで,作業区分が明確化され,開発や変更などがしやすくなり,作業効率が上がる.また,並列的に開発を行うことができるため,開発の効率は高くなる.
○保守性の確保
MVCモデルを利用した場合,比較的に独立性が高いため,他の要素に対する変更やバグなどの影響が小さく,保守性や品質が向上する.
○再利用性
MVCモデルの考え方で開発したコードは,他のMVCアプリでも再利用しやすい.あるアプリで機能することが検証されているため,再利用した際の,信頼性も確保することができる.
デメリット
×処理速度の低下
DBのやり取りを行うModelや,仲介を行うControllerの負担が大きくなり,処理速度が遅くなる可能性が生じる.
×開発に制約がかかる
オブジェクトを機能ごとにを分割して作成した場合,オブジェクト間のやりとりに制約が生じ,コードを柔軟に記述できなくなることがある.
処理の流れ
- ユーザからのリクエストをControllerが受け取る
- Controllerは受け取ったリクエストをもとに,Modelに指示を送る
- Modelはデータの処理を行い,処理結果をControllerに送る
- Controllerは受け取った処理結果をViewに送る
- Viewは受け取った処理結果(レスポンス)を画面に表示する
その他のソフトウェア設計モデル
MVCモデル以外にもさまざまなソフトウェア設計モデルがある.(説明は割愛)
- MVP:Model, View, Presenter
- MVVM:Model,View, ViewModel
- Document-View:Document, View
- PAC:Presentation, Control, Abstractio
- BCE:Boundary, Control, Entity