MD Blog

誰かの何かに役に立てることを書いていきたいです

MVCの本質

MVCの古典的定義を読んで思ったこと。

 

MODELS - VIEWS - CONTROLLERS

http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf

モデル・ビュー・コントローラ - Trygve Reenskaug

http://d.hatena.ne.jp/digitalsoul/20100913/1284330448

 

Model, View, Controllerそれぞれの依存関係が重要なのだと思いました。

今までMVCとは、Modelがどの範囲までカバーしているのかとか、Controllerは何をするのかとか、そういった役割についての定義だと思っていました。M,V,Cそれぞれの役割についてはさまざまな解釈があり、どれが正しいのかを判断する客観的な指標がありません(あるいはどれを正しいとしても問題ない)。

しかし、依存関係ありきで考えるとおのずとそれぞれの役割も定まることに気が付きました。

MはVもCも知らない。なのでModelは、単純に対象を表したオブジェクトになる。

VはCを知らずMを知っているので、Mのデータを視覚的に表すためのオブジェクトになる。

CはユーザのインプットをMやVに反映させる。

DBデータなどはCでとってきてMに入れてVにわたすのがいいのかな。