MVCモデル 【Model-View-Controller】
概要
MVCモデル(Model-View-Controller)とは、ソフトウェアの設計モデルの一つで、機能を「Model」(モデル)、「View」(ビュー)、「Controller」(コントローラ)の三つの役割に分離して実装し、それらが連携して処理を進める方式。Modelはデータの管理や手続きを扱い、Viewは他の二要素からの指示を受けて利用者への表示・出力(の変更)を行い、システムによっては利用者の操作・入力内容をControllerに伝達する。Controllerは利用者からの操作や入力を受け付けて解釈し、ModelやViewに対応する処理を行うようメッセージを発する。
このように役割に応じて各要素を分離することにより、各要素の内部設計や開発を分業しやすくなり、変更が他の要素に影響するのを避けやすくなる。例えば、内部的な機能や処理は変えずにユーザーインターフェースのデザインや操作方法のみを改良するといったことが行いやすくなる。
MVCモデルはもともと1980年代にSmalltalkでのGUIアプリケーションの設計のために考案されたモデルで、1995年にデザインパターンを世に広めた有名な書籍「オブジェクト指向における再利用のためのデザインパターン」(Design Patterns:Elements of Reusable Object-Oriented Software)で紹介されたのをきっかけに広く知られるようになった。
Webシステムの応用は1999年のJavaServer Pages(JSP) Model 2でサーバ側プログラムの設計パターンとして採用されたことから本格化したと言われている。この実装ではModelがViewへ直接指示を行わず、ControllerからViewの制御を行うようになっており、このような設計モデルをオリジナルのMVCモデルと区別して「MVC2」と呼ぶこともある。Webサーバの構造上はこちらのほうが自然なため、Webアプリケーション開発の現場などではこれを指して単にMVCモデルと呼ぶことも多い。
(2018.11.1更新)