MVCモデル
MVCモデル
役割ごとにModel, View, Controllerに分割してコーディングを行うモデルです。
それぞれの役割
Modelはデータ処理や操作を担当する機能です。
データベースとのアクセスや、データベースからデータを取得したり、またはデータベースのデータを登録・更新・削除したりします。
データベースへ処理を実施する際にはSQLという言語を用いるのですが、このSQLもModelにて記述してデータベースへ命令することができます。
またデータを登録・更新する際のデータの検証(バリデーション)などの細かいビジネスロジックを実施するのもModelの役割です。
ViewはContorollerやModelで処理したデータをHTMLとして出力するための機能です。
いわば最終出力結果ですね。
例えば検索一覧結果をHTMLに表示させるために、データをHTMLに入れ込む作業を実施することができます。
ControllerはModelとViewを繋ぐ役割を持つ機能です。
例えば何かしらのデータを検索し、一覧結果を画面に出したいとします。
その際、Contorollerがユーザーから受け取った検索条件をModelに渡し、Modelにてデータ検索処理を実施します。
Modelは取得したデータをControllerに渡し、ContorollerはそのデータをView(テンプレートエンジン)に渡して画面作成の処理を実施します。
その後、Viewで生成されたHTMLファイルをブラウザに返し、検索結果が画面に表示されます。
あくまで、自分自身はロジックや画面表示を実施せずに、役割に応じてModelやViewを呼び出し制御する機能です。
Controllerには複雑な処理を記載せずに、値をModelやViewに渡して制御するように設計することが大事です。
イメージ
特徴
- 役割によってどこに何のプログラムを記載すれば良いか、ルール化された開発方法の1つ
- 役割に分けて管理し開発のしやすさとコード確認のわかりやすさを両立できる
利点
-
機能ごとに分割されているため分業して作業を進めやすい。
-
保守性が高い
Discussion