LoginSignup
6
4

More than 3 years have passed since last update.

MVCモデル + router(ルーター)

Posted at

概要

MVCモデルとは、プログラムの処理を以下の3つの役割に分類して開発するモデル。

  • Model
  • View
  • Controller

それぞれの頭文字を取ってMVCモデルと呼ばれる。
router は 、MVCモデルではControllerの一部として考える事もできる。

※イメージ
ITエンジニアホワイトボード.jpg

MVC + router の役割

以下、それぞれの役割をまとめる。

Model

ビジネスロジック(=様々な処理を実際に実行するロジック)を担当。DBを操作する役割を担っている。

具体的には、

  • データをDBへ保存
  • DBからデータを取得
  • DBのデータの更新や削除

などの役割がある。基本的にDBを直接触るのはModelだけ。

データ処理(DBから取得したデータの変換など)を含む場合もあるが、DBを操作するイメージが強いため、Logicというディレクトリを作成してデータ処理のプログラムを切り離すこともある。

上司(Controller)からの司令を受けて走り回るパシリ的な役回り。

View

ユーザーが実際に見る出面を担当。動的なサイト(ex. Twitter, ブログサイト, etc…)の出面を表すことが多い。表示や入出力を担っている。

  • Controllerから受け取ったデータ(レスポンス)を画面に表示
  • ユーザーからのリクエストをControllerへ送信

などを行ってる。ユーザーが触れられるのはViewだけ。

ユーザーの言うことを聞いたり上司(Controller)の指示に従ったりする受付の人。

Controller

ModelとViewを制御する司令塔を担当。ユーザーの入力に基づいてModelとViewに指示を出す。

  • Viewからリクエストを受け取ってModelに指示出し
  • Modelの処理を受け取ってViewへレスポンス

などを行う。

部下(ViewやModel)に指示を出すだけで自分は動かない上司。

ルーター(router)

処理の振り分けを担当。httpアクセスが来たときにどのように処理するかを決めて適切なControllerにアクセスを流している。MVCモデルではControllerが受け取りもやるのでControllerに内包されているとも言える。

もしControllerとrouterを切り分けるとすれば

  • Viewからのリクエストを受け取って、適切なControllerに受け渡し

が主な役割になる。

Controllerを補佐する秘書のようなもの。

参考

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4