本記事では、プログラミングにおけるMVCモデルとは何かと言うことを、初心者の方にも理解しやすいよう噛み砕いで説明していく。
MVCモデルとは

結論から言うと、MVCモデルとは、
「プログラミングのフレームワークみたいなもの」と思って貰えば良い。
みたいなもの、なのであくまでも概念的なもの。
プログラミングのフレームワーク的概念
ソースコードを下記の3つに分けるからMVCモデルと呼ばれている。
- View(ビュー)
- Model(ロジック)
- Controller(コントローラ)
View(ビュー)
MVCモデルにおけるView(ビュー)とは、
ユーザーに見える部分のプログラムのこと。
webページにおけるhtmlの表示結果など、クライアントが見て触るの部分のプログラムなどは、viewに分類される
Model(ロジック)
MVCモデルにおけるView(ビュー)とは、
データ処理を担当するプログラム群のことを指す。
具体的には、DBなどのデータを処理、加工することを指すことが多い
DBそのものの値を更新したり削除したり、または取得した結果をプログラム側で使いやすいように加工して、コントローラに返したりと言った役割が多い
Controller (コントローラ)
ViewとModelをつなぐパイプ役のプログラム群
例えば、
- viewでクライアントから入力値を受け取る
- 受け取った入力値をmodelのプログラムに渡す
- modelで処理されて帰ってきた値を元に、次のviewの表示内容を作成する
- 結果(表示内容)をviewに返す
と言った一連のviewとmodelの仲介をするプログラムがcontrollerに該当する
もちろん必ずmodelとやりとりしなければ良いという訳ではない。
MVCモデルの例
限定グッズをネットで購入するシチュエーションを元に説明する
View(ビュー)
クライアントが注文画面で、
限定グッズを3個注文したとする
Controller(コントローラ)
次に来るのがコントローラ
コントローラは、クライアントの入力値である「限定グッズ」「3個」という入力値を受け取る
そして、商品データを管理しているDBにデータの処理をするため、
modelのプログラムに「限定グッズ」「3個」という入力値を渡す
Model(ロジック)
コントローラから渡された「限定グッズ」「3個」という情報を元に、
商品情報を管理しているDBからデータを抽出し、コントローラに結果を返す。
例えば、限定グッズの値段を商品マスタから抽出しそれが3個なので、1500円
→1500円という値をコントローラに返す
Controller(コントローラ)
1500円という値をmodelより受け取る。
結果をクライアントの、結果をview(購入内容確認画面)に渡す
View(ビュー)
購入内容確認画面ソースコードの値段の部分に、1500円という値を埋め込んで、クライアントに表示される
上記は簡単な例だが、MVCの関係性がなんとなくわかるはず

MVCモデルのメリット
mvcモデルのそれぞれは、役割が概ね明確に区切られているため、開発側としては、下記のようなメリットがある。
- 分業しやすく、効率的に開発できる
- プログラムの管理がしやすい
- 柔軟に変更に対応しやすい
まとめ
ということでまとめ
MVCは「プログラミングのフレームワークみたいなもの」
参考:https://www.geekly.co.jp/column/cat-technology/1911_040/