MVCってなに?

こんにちは。

暑くなってきましたね。

 

Webアプリケーションを作成する上で必須知識となりつつある MVCフレームワーク ですが、まだ良くわかってないという方もいると思います。

今回は、そんな超初心者の方でも3分で分かるようにまとめてみました。

 

MVCってなに?

MVC はソフトウェア・アプリケーションを作る上での設計手法の1つです。

Model(モデル)、View(ビュー)、Controller(コントローラ)という3つの領域に分割して1つのソフトウェアを作ります。

f:id:Turing:20160702104109p:plain

 

なんで分割するんや!

こんなふうにわざわざ3つの領域に分割するのは次のような理由があります。

1.プログラマとデザイナが分業するため。

2.保守性を上げるため。

MVCフレームワークを使うことによって、プログラマによる実装手法の差を軽減することができます。

 

M,V,Cそれぞれの役割  

View(ビュー)

読んで字のごとくです。表示を担当します。Webアプリケーションの場合は、Webページに当たります。

 

Contoller(コントローラ)

ユーザーからのリクエストを解析し、適切なビューを呼び出します。ただし、コントローラは中継役にすぎないので、ビジネスロジックは実装してはいけません

ビジネスロジックはモデルに実装します。コントローラは、モデルを初期化してビューに渡すだけです。

 

Model(モデル)

ビジネスロジックとデータアクセスをモデルに実装します。上の図を見てもわかると思いますが、データベースに直接アクセスできるのはモデルだけです。

モデルとコントローラの関係は1対 多 です。モデルは複数のコントローラから呼ばれることもあります。

  

Controller はただの中継役

MVCフレームワークを使う上で特に多い間違いが、Controller にビジネスロジックを書いて、Controllerを肥大化させてしまうことです。

先も書きましたが、Controllerは中継役にすぎないのです。Controllerには、どうしてもモデルに書けないこと(HTTPリクエストに対してWebページを表示するなど)を書くのです。