MVCモデルとは何か解説できますか?
MVCモデルとは何か?と聞かれて何も見ずに解説出来るでしょうか?
私は出来ませんでした(汗)なので、この記事ではMVCのなんたるやを、解説します!
MVCとは何か?大雑把に解説
MVCとは何かを知る前に、そもそも何故モデルに分割されるのか、知っておくと良いでしょう。
分割される理由は簡単で、
1、開発する際の担当を分ける事が出来るから。
2、実装における機能を十分に分割しておかないと後々改修作業が大変な事になる為。
となっています。
そして肝心なMVCモデルの解説。
MVCモデルとは、ソフトウェアの開発をする際の考え方(デザインパターン)です。過去のソフトウェア開発者たちが築き上げた開発ノウハウを濃縮したものの1つが、このMVCモデルなのです。
Model/View/Controllerの3つの観点から、システムを創り上げる事を指しています。
M(model)
「Model」は、システム内の様々な処理(ビジネスロジック)を記述する部分。いわゆるプログラミングの”ソースコード”はここに記述される。
オブジェクトの設計を行う部分の担当と言い換えてもいいでしょう。
V(view)
「view」は、表示部分を担当してくれるもの。ユーザーが見てくれる部分はここで一括的に担当する。
HTMLの生成、グラフや図の表現などを行いたい場合は、このviewを使う事になるだろう。
C(controller)
「controller」は、ユーザーからの入力の処理を担当する。例えばユーザーがテキストフォームに何かを入力して、それを送信した場合の処置がこのコントローラーである。
クライアント(サービス利用者)側の指令を受け取り、それをModelや、Viewに流す役割です。
※以下laravelに関する余談※
ここにビジネスロジック(本来ならmodelで書くべき)を書いたり、見た目(viewで書くべき)を書く事も出来るが、なるべくは避けると良いでしょう。
逆に言えば、ルーティング(web.phpと書かれた入力されたURLを仕分けるアレです!)と、controllerさえあれば、modelやviewは無くてもwebアプリを構築出来てしまう訳です。