MVC ってこういうこと?(5) -取りあえずのまとめ-
2009/10/12 12:26 - AS3.0
ブログにエントリーしたり、実際にコードを組んでみたりと、MVC に対していろいろ取り組んできた過程で、このシリーズの当初に考えたことと解釈が変わってきました。
どうも View って呼称に惑わされた感があります。
View は「ユーザの目に見える」ことがその本義ではなく、あくまでも「Model の内容を見せる」ことが本義。 つまり View というよりも Viewer と呼ぶ方が相応しいんじゃないでしょうか。
私が「入力用 View」と呼んだものは、Model の内容を見せる機能は一切担っていません。 あくまでも入力用のユーザインターフェイスです。 となると、ユーザインタラクションを担う Controller に所属させるのが妥当というもの。
ところで、私が作るような作品の場合、ユーザインタラクションの主な担い手であるマウスやキーボードのイベント処理は stage に 対して addEventListener しないと機能させられない場合がほとんどです。 となると、Controller は DisplayObject もしくは DisplayObjectContainer の拡張クラスとして設計した方が合理的です。 今後は積極的にそういう設計を採用しよう。
そんなわけで、最初に提示した図を訂正すると以下のような模式図になるのかなぁ、というのが現段階での解釈。
私の考える MVC 模式図改訂版
今後の課題としては、上図には図示していませんが、Controller から View への矢印は、当たり前に発生するものなのか、それともレアケースなのか、という点の確認ですかねー。
既存の MVC の解説にある Contoller から View への矢印というのは、Controller から、私が「入力用 View」と呼んだものへの矢印だと思うんですよ。 となると、Controller における内部処理になるので、その矢印は上図には図示されない要素です。
「ActionScript 3.0 デザインパターン」の事例では、今で問題にしている Controller から View への矢印が発生しているので、Controller から View への働きかけは皆無ではないということは理解できるんですが、それが果たして当たり前なのやら稀なのやら…… 今後いろいろ試してみようと思います。
シリーズ
- MVC ってこういうこと?(4) -Controller-
- MVC ってこういうこと?(3) -View-
- MVC ってこういうこと?(2) -Model-
- MVC ってこういうこと?(1) -前説-
- MVC について思うこと -巷間にあふれる説明に対する疑問-