MVCパターン


MVCパターンについて

最近、MVCパターンを勉強したので記事にまとめます。実は理解していない部分もあるのでぜひツッコミをお願いします。

MVCパターンとは?

コードの構成の一つです。
コードは動かすだけなら正しいコードであれば動きます。しかし、読みやすさや修正の簡単さをあらかじめ考慮してコードを構成するほうがいいです。この構成方法の1つがMVCパターンです。

どんなものなの?

MVCパターンはコードをModel, Controller, Viewの3つに分けます。この3つはそれぞれ役割分担させます。

Viewの役割

ブラウザに表示される部分です。ASP.NETならCSHTML, JavaならJSPがこれに当たります。

Modelの役割

データの管理を担います。また、データは最終的にはDBと受け渡しを行うのですが、Controllerで扱う形とDBの形の仲介を行います。ASP.NETのViewModelはDBのカラム一覧ではなく、ControllerやViewで扱いたい形式になってます。
JavaではBeanなどがこれに相当します。

Controllerの役割

ViewやModelへの命令を担います。
どのViewに渡すのかやどのモデル、ひいてはテーブルを検索しているかを記述します。

なにがメリットなの?

まず、なによりも読みやすいです。コードを分離させているので、どこに何が書いてあるかのわかりやすいし、辿り着きやすいです。さらに修正が簡単になります。役割分担をさせているので修正部分が少なくなったり、明確にしやすくなります。

肥大化の防止のために

MVCパターンで設計を行うときにControllerが肥大化しないようにModelの検討を行ってください。ControllerだけでViewに渡したいデータ形式とDBに渡したい形式の両方の変換や加工を記述するのはやめてください。例えば、Modelを作り直してViewModel、Modelを切り分けるなどしてください。