#はじめに
本記事では、MVC(Model(モデル)、View(ビュー),Controller(コントローラー)とRouter(ルーター)の関連を確認しながら、用語について解説していきます。
#Router(ルーター)とは
RouterはHTTPリクエストがあったURLに対して、アプリケーション内のどの機能を結びつけるを決める役割を果たします。そして次に説明するControllerに1つのメソッドを割り当てます。
#Controller(コントローラー)
"Controller"はMVCパターンの司令塔的役割を果たします。
これは、ユーザから送られてきたHTTPリクエストの処理を担当します。そのHTTPリクエストはRouterからControllerの1つメソッドと結びつきます。
そしてControllerはHTTPリクエストに対応したModelの作成や取得、取得した値をViewに渡して処理を行わせる、というようなことを行います。
つまりModelやViewに命令を出すことがControllerの仕事です。
#Model(モデル)
"Model"はデータとやりとりをしてくれる存在です。
Controllerからの命令に従い、データベースから情報を取得したり、データを更新したり、書き込んだり、データを消去したりします。
データベースと直接やりとりできるのはModelだけです。
#View(ビュー)
ViewではControllerから渡されたデータを、HTMLページでどのように表示するかを定義します。最終的にHTTPレスポンスとして返すWebページです。
Viewでは見た目の部分だけでなく、Controllerによって選択された適切なModelが埋め込まれます。
#まとめ
これを一連の流れにしてまとめます。
RouterはHTTPリクエストを受け取り、適切なアクションとひも付けます。
Controllerはそのアクションを実行してModelやVeiwに指示を出して、ViewをHTTPレスポンスとして返すと行ったところでしょうか。