MVC
アプリケーションを、データと業務の処理を担うモデル、画面を描くビュー、利用者の操作を受け取って処理をつなぐコントローラーに分けるアーキテクチャパターン。役割を分けることで、画面の変更が業務の処理へ及ぼす影響を抑えやすくする。
イマシルちゃんの解説
画面の見た目を変えるだけなのに、料金の計算まで直す必要があったら大変だよね。
MVCは、アプリケーションを三つの役割に分ける設計パターンなんだ。
データと業務の処理を受け持つのがモデルだよ。
その結果を画面に描くのがビューなんだ。
利用者の操作を受け取って、必要な処理へつなぐのがコントローラーなんだ。
例えば買い物の画面なら、ボタンの配置を変える仕事と合計金額を計算する仕事を分けておくよ。
こうすると、画面を変えるときに業務の処理へ手を入れる範囲を小さくしやすいんだ。
この解説はわかりやすかったですか?
より深い解説
定義
MVC(Model-View-Controller)は、POSAでも紹介されている、GUIを持つアプリケーションの代表的なアーキテクチャパターンである。アプリケーションを次の3つのコンポーネントに分ける。
| コンポーネント | 役割 |
|---|---|
| モデル(Model) | データの管理と、業務の処理(ビジネスロジック) |
| ビュー(View) | モデルのデータを利用者に表示する |
| コントローラー(Controller) | 利用者からの入力を受け付け、モデルやビューを制御する |
動きの流れ
- 利用者がボタンを押すなどの操作をする
- コントローラーが入力を受け取り、モデルに処理を依頼する
- モデルがデータを更新する
- ビューが更新されたモデルのデータを表示し直す
利点
- 表示(ビュー)と処理(モデル)が分かれているので、画面のデザインを変えても、処理を変更せずに済む
- 1つのモデルに対して、複数のビュー(一覧表示とグラフ表示など)を用意できる
- 役割ごとに分担して開発やテストを進めやすい
Webアプリケーションでの利用
多くのWebアプリケーションのフレームワーク(Ruby on Rails、Spring MVC、Laravelなど)が、MVCかそれに近い構造を採用している。Webの場合は、コントローラーがHTTPのリクエストを受け取り、モデルでデータを処理し、ビュー(HTMLのテンプレート)で応答を作る、という流れになる。
POSAのほかのパターンとの見分け方
「データの管理」「利用者への情報表示」「利用者からの入力と制御」の3つに分ける、GUIのシステム、表示部分の変更に柔軟、という言葉があれば、MVCである。
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ