ボム君.com

Masa's blog

今まで学んできたITスキルを主に。

MVC (Model View Controller モデル・ビュー・コントローラ)とは

プログラミングの上級者になると頻繁にこのMVCという単語を使うことになると思う。

じゃー、一体このMVCとは何なのかを簡単にここでまとめたのでどうぞ参考までに。

MVCとは

MVCは、簡単にいうとアプリケーションを作る時に必要になってくるある一種の設計ノウハウみたいなものです。

一つアプリケーションにはたくさんの機能が入っていて、例えば:

  1. サーバーに接続する
  2. ユーザーインターフェイスを表示する
  3. ユーザーのデータを保存もしくはサーバーから取り出す
  4. たくさんのインターフェイスを所有する
  5. 管理人のページがある

などがありこれらを一つ一つこなしていても結構な労力と時間が費やされるため、非効率的です。

よってこのMVCが役に立つっていうことです。
Wikipediaではこう説明されています。

MVC(Model View Controller モデル・ビュー・コントローラ)は、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。
アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。
model: アプリケーションデータ、ビジネスルール、ロジック、関数
view: グラフや図などの任意の情報表現
controller: 入力を受け取りmodelとviewへの命令に変換する

三つのプログラム

MVCには、Model(モデル)View(ビュー)、とController(コントローラー)のこの三つのプログラムがあります

どれも重要で役割はそれぞれ違います。
ですので、それぞれの役割をちゃんと理解して、覚えてください。
しかし、冷静に考えれば、いいアプリケーションを作るために、ただこの三つのことを把握していれば作れるってわけですから、そんなに苦ではありませんね。

モデル(Model)

  1. データを管理するところです。主にデータベースを設計、管理、変更などをする
  2. データの内容を送受信
  3. ユーザーに通知、告知などやデータに対する制限などもここで行える

ビュー(View)

  1. ユーザーのインターフェイス、表示の仕方、HTML、JavaScriptなどをここで扱う
  2. モデルから受け取ったデータを表示
  3. HTMLテンプレートを使う
  4. CSSなどに敏感
  5. JavaScriptを使う
  6. ユーザーのブラウザーに表示する

簡単にいっちゃえば、HTMLなど、ユーザーのブラウザーにどのように表示させるかをここで決めています。

コントローラー(Controller)

  1. 司令塔みたいなもの
  2. ビューとモデルに仕事を与える
  3. ビューから、ユーザーから受け取ったデータ(内容)をここで受け取り、モデルに保存させる。
  4. MVCの中で一番忙しいプログラム
  5. ビューに表示させる内容もここで変更可
  6. ビューとモデルがいなくてもこれさえあればMVCは成立する
  7. コントローラーにバグがあったらもう全ておしまい。ビューとモデルだけでは処理できない。
  8. モデルはデータを直説ビューに渡してもいいが、コントローラーに一旦データを処理してもらう方がオススメ。

MVCの構造/まとめ

f:id:masa25michi:20170502030112p:plain