1. MVCモデル
ソフトウェアの設計モデルの一つ。
機能を「Model」(モデル)、「View」(ビュー)、「Controller」(コントローラ)の三つの役割に分離して実装する。
役割ごとに意味のある単位で機能を分割し実装するため、管理しやすい。
1. Model
システムの主処理を担う部分。
データベースとのデータのやり取りやデータの追加・削除・変更などを実施する。
2. View
データを表示したり、入出力するデータの前処理や連携を行う部分。
他の二要素から指示を受け、利用者(クライアント)への表示・出力を行う。
3. Controller
利用者(クライアント)の入力に基づきModelとViewを制御する部分。
橋渡し役。
2. 大まかな処理の流れ
①クライアントがViewへリクエストを送る
②Viewで受け取った値をControllerへ渡す
③Controllerは受け取った値をもとにModelに処理指示を出す
④Modelはデータベースを参照しデータを処理する
⑤Modelは処理結果をViewに渡す
⑥Viewは処理結果をクライアントに表示する
システムによっては「Controllerがクライアントからリクエストを受け取る」になっていたり、「ModelはViewへ直接指示をせず、Controller経由でViewを制御する」になっていたりする模様。
特に「ModelがViewへ直接指示を行わず、ControllerからViewの制御を行う」設計を「MVC2」と呼ぶこともあるらしい。
「ファサードパターン」という形態もある。
※ファサード:ControllerとModelのやり取りを仲介してControllerの負担を軽減する
3. MVCモデルのメリットとデメリット
メリット
- 各パートの独立性が高く(疎結合)、高品質で効率的な開発が可能。
- 変更や修正対応が柔軟に行なえる。
デメリット
- システムの規模拡大により、ModelとControlerの負担が大きくなる。
- システム機能の複雑化により、各パートが蜜結合になり、システム修正や変更の柔軟性が失われる。