MVC

読み:えむぶいしー / 英語表記:Model-View-Controller

アプリケーションを、データと処理を扱うモデル、表示を担うビュー、利用者の入力を受け付けて制御するコントローラーの3つに分けるアーキテクチャパターン。表示部分の変更に柔軟に対応できる。

イマシルちゃんの解説

お店に例えると、モデルは倉庫と帳簿、ビューはお店のショーウィンドウ、コントローラーはお客さんの注文を受ける店員さん、って感じかな。

役割を分けておけば、ショーウィンドウの飾り付けを変えても、倉庫や帳簿には影響しないよね。
MVCも、画面のデザインを変えるときに、中身の処理をいじらなくて済むんだよ!

より深い解説

定義

MVC(Model-View-Controller)は、POSAでも紹介されている、GUIを持つアプリケーションの代表的なアーキテクチャパターンである。アプリケーションを次の3つのコンポーネントに分ける。

コンポーネント役割
モデル(Model)データの管理と、業務の処理(ビジネスロジック)
ビュー(View)モデルのデータを利用者に表示する
コントローラー(Controller)利用者からの入力を受け付け、モデルやビューを制御する

動きの流れ

  1. 利用者がボタンを押すなどの操作をする
  2. コントローラーが入力を受け取り、モデルに処理を依頼する
  3. モデルがデータを更新する
  4. ビューが更新されたモデルのデータを表示し直す

利点

Webアプリケーションでの利用

多くのWebアプリケーションのフレームワーク(Ruby on Rails、Spring MVC、Laravelなど)が、MVCかそれに近い構造を採用している。Webの場合は、コントローラーがHTTPのリクエストを受け取り、モデルでデータを処理し、ビュー(HTMLのテンプレート)で応答を作る、という流れになる。

POSAのほかのパターンとの見分け方

「データの管理」「利用者への情報表示」「利用者からの入力と制御」の3つに分ける、GUIのシステム、表示部分の変更に柔軟、という言葉があれば、MVCである。

実際の試験ではここに出る!

この用語が出てくる記事

↑