22
2
章
MVC
いるかもしれません。もし興味があるなら、拙著Learning JavaScript Design Patterns(邦題
『
JavaScript
デザインパターン』オライリー・ジャパン)でこれらのパターンをいくつか紹介してい
るので参考にするとよいでしょう。
繰り返しますが、モデルはアプリケーションのデータを表し、ビューはユーザーに対する画面表
示を受け持ちます。そのため、両者間のコミュニケーションにはパブリッシュ
-
サブスクライブの
仕組みが必要になります(このことは
MVC
の解説記事でも取り上げられていないことが多いので
す)。変更が発生すると、モデルは他のコンポーネントに対して変更をパブリッシュ(通知)します。
モデルに対してサブスクライブすなわち購読しているコンポーネント(一般的にはコントローラ)
は、変更内容に応じてビューを更新します。このような両者間の関係(ビューアーとも呼ばれます)
によって、複数のビューを同じモデルに関連付けることが可能になります。
MVC
が持つ疎結合の性質(実装ごとに異なりますが)についてより深く知りたい読者には、
MVC
の目標の
1
つはトピックとオブザーバーとの間で
1
対多の関係を定義できるようにすること
であると指摘したいと思います。トピックが変化すると、すべてのオブザーバーが更新されます。
ただし、ビューとコントローラの関係はこれとは若干異なります。コントローラはビューによる
ユーザーの操作への応答を促進するという役割を持ち、これは
Strategy
パターンに相当します。 ...