📌

MVCモデル

2024/02/08に公開

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