ページ

2011年10月15日土曜日

そもそもMVCとは。

様々なフレームワークで用いられているMVCについての僕の認識を書いてみる。
Viewは画面。これについては特に書くことはない。
Controllerは、ViewやModelの処理を起動するもの。
Modelはドメインモデルのこと。業務処理に合わせて、データを保持したり、データを編集したりするのがModelの役割。

フレームワークの入門者向け解説を読むと、Modelはデータを保持するだけのものだと勘違いすることがある(僕もそうだった)。Strutsの解説ではModel=Beanとされていることがあるし、Railsの解説でもgenerate modelでModelが作られるとされていることがある。間違いではないんだけれど、ちょいと言葉が足りないのではあるまいか。

一部の企業が採用している設計方針では、Modelを実現するために、ServiceクラスとModelクラスを作る。Serviceクラスではデータの編集を行い、Modelクラスではデータの保持を行う。このようにすることでクラスの役割はわかりやすくなる。このような場合でも、MVCに照らしあわせれば、ServiceクラスはMVCのModelの役割に含まれている。










このあたりを再認識することはけっこう重要だと思った。特にRailsを使う上ではね。

0 件のコメント:

コメントを投稿