7.10
イベントアグリゲーターとメディエーター
177
7.10.5
共通点と相違点
ここまでに紹介したイベントアグリゲーターとメディエーターの例との間には、間違いなく共
通点があります。この共通点はイベントと第三者のオブジェクトという
2
点に集約できます。これ
らについては、たとえ相違点があるとしても表面的なものです。パターンの意図について深く知り、
実装が大幅に異なることを知ったときに、それぞれのパターンの本質が明らかになるでしょう。
7.10.5.1
イベント
先ほどの例では、イベントアグリゲーターとメディエーターはともにイベントを利用していま
す。名前が示すとおり、イベントアグリゲーターはイベントを扱います。一方でメディエーター
がイベントを利用しているのは、単に
Backbone.js
上での処理が容易であるからにすぎません。メ
ディエーターにとってイベントは必須ではありません。例えば子オブジェクトに自身の参照を渡
し、コールバックメソッドを呼び出させたりしてもかまいません。他のやり方も考えられます。
つまり、これらのパターンの違いはイベントの位置付けに見られます。(パターンとしての)イ
ベントアグリゲーターは、イベントを扱うために考えられました。メディエーターは、単に便利だ
からという理由でイベントを利用しています。
7.10.5.2
第三者のオブジェクト
設計段階では、イベントアグリゲーターとメディエーターはともに目的の達成のために第三者の
オブジェクトを利用しています。イベントアグリゲーター自体も、イベントのパブリッシャーとサ ...