MVC ってこういうこと?(1) -前説-
2009/10/03 23:31 - AS3.0
前回、MVC について、View を「ユーザからの入力を受け持つもの(以下「入力用 View」)」と「Model からのデータを表示するもの(以下「出力用 View」)」の二つに分けて考えると理解しやすくなるんではないか、ということを書きました。
入力用 View は Controller だよ、というご意見もあるようですが、取りあえず、View に所属するものとして、上記の考え方に基づき、コードを組んでみます。
私の考える MVC 模式図
前回示した図を再掲します。 黒い矢印に注目してみましょう(話を簡単にするために、灰色の矢印は無いものとして扱います)。
- ユーザは入力用 View にデータを入力
- 入力用 View は、それを Controller に通知
- Controller はそれに基づいて、Model に状態変更を要求
- Model はそれによって状態を変え、出力用 View に通知
ユーザ入力を起源とする情報の流れはこのように一方通行になっています。
つまり、Model、Controller、二つの View はそれぞれ片想いの関係になっていると言えましょう。
とは言ってもコーディング的に片想いになっているわけではありません。
コーディング的な片想いというのは、各要素の参照の持ち方がそうなっている状態を指しているつもりです。 例えば、入力用 View は Controller の参照を持ち、Controller は Model の参照を持ち、Model は 出力用 View の参照を持ち、というようなことですが、実際にはそうじゃありません。
各種説明では、Model が Observer パターンを使って、ここで言う出力用 View の参照を保持する、と書いてありますが、私は Model は何物の参照も持つ必要がないと考えています。
まぁそのあたりの個別解説は次回以降に譲るとして、まずはできたコードを提示してみます。
次回は、天上天下唯我独尊の Model について説明をおこなう予定です。
シリーズ
- MVC ってこういうこと?(5) -取りあえずのまとめ-
- MVC ってこういうこと?(4) -Controller-
- MVC ってこういうこと?(3) -View-
- MVC ってこういうこと?(2) -Model-
- MVC について思うこと -巷間にあふれる説明に対する疑問-