MVCってなに?
こんにちは。
暑くなってきましたね。
Webアプリケーションを作成する上で必須知識となりつつある MVCフレームワーク ですが、まだ良くわかってないという方もいると思います。
今回は、そんな超初心者の方でも3分で分かるようにまとめてみました。
MVCってなに?
MVC はソフトウェア・アプリケーションを作る上での設計手法の1つです。
Model(モデル)、View(ビュー)、Controller(コントローラ)という3つの領域に分割して1つのソフトウェアを作ります。
なんで分割するんや!
こんなふうにわざわざ3つの領域に分割するのは次のような理由があります。
1.プログラマとデザイナが分業するため。
2.保守性を上げるため。
→ MVCフレームワークを使うことによって、プログラマによる実装手法の差を軽減することができます。
M,V,Cそれぞれの役割
View(ビュー)
読んで字のごとくです。表示を担当します。Webアプリケーションの場合は、Webページに当たります。
Contoller(コントローラ)
ユーザーからのリクエストを解析し、適切なビューを呼び出します。ただし、コントローラは中継役にすぎないので、ビジネスロジックは実装してはいけません。
ビジネスロジックはモデルに実装します。コントローラは、モデルを初期化してビューに渡すだけです。
Model(モデル)
ビジネスロジックとデータアクセスをモデルに実装します。上の図を見てもわかると思いますが、データベースに直接アクセスできるのはモデルだけです。
モデルとコントローラの関係は1対 多 です。モデルは複数のコントローラから呼ばれることもあります。
Controller はただの中継役
MVCフレームワークを使う上で特に多い間違いが、Controller にビジネスロジックを書いて、Controllerを肥大化させてしまうことです。
先も書きましたが、Controllerは中継役にすぎないのです。Controllerには、どうしてもモデルに書けないこと(HTTPリクエストに対してWebページを表示するなど)を書くのです。