フレームワーク

MVC

MVCとは、Model View Controller のそれぞれの頭文字を取ったものです。アプリケーションソフトウェアを設計する手法の一つであり、3つの要素に分割して設計開発します。Viewはデータをユーザに見える形にして表示します。Controllerはユーザからの入力(イベントと言う)に対して応答します。Modelは処理を担当します。

処理フローを考えると、ユーザはViewにイベント起こします。これは何かを入力してボタンをクリックするというような操作になります。Controllerはviewからイベントを受取って、何も処理せずそのまま表示するだけなら、再びViewにデータを渡して表示させます。しかし、多くは何らかのロジックを持って処理が必要ですから、その場合はModelにデータを渡します。

Modelはイベントに応じたロジックで処理を実行します。必要であればデータベースにアクセスしてデータの登録や更新を行います。ViewはModelの処理結果を表示し、次のイベントを待ちます。このように機能分割してソフトウェアを開発することにより、開発効率を高め、将来の仕様変更にも対応しやすいソフトウェア構造となります。

例えば、画面のデザイン構成を変更する場合はViewだけを書き換えればよく、ControllerとModelに影響はありません。データベーステーブルに変更が生じた場合はModelのみ書き換えればよくControllerとViewに影響は無いという訳です。

元々はSmalltalk開発のための設計思想でしたが、GUI(グラフィカル・ユーザ・インターフェース)を実装するソフトウェア開発に広まりました。