= イベントバス =
== 目的 ==
[[http://www.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html|Google I/O 2009 - Best Practices for Architecting GWT App ]]の13:50あたり。ここでは、アプリケーションのdecoupling(依存性の除去)の方策として三つあげられている。
* An event bus(イベントバス)
* MVP pattern for your custom widgets(カスタムウィジェットについてMVPパターンを用いる)
* Dependency injection of app-wide services(アプリケーション全体で用いるサービスを注入する)
これによって、
* Easy rejiggering of the app<
>アプリの改変がやりやすくなる
* Easy to defer pokey DOM operations<
>?
* Easy unit testing<
>ユニットテストが簡単になる
* Fast test execution<
>テスト実行が素早くなる
== 仕組み ==
イベントバスの仕組みについては、[[http://tv.jetbrains.net/videocontent/gwt-event-bus-basics|GWT Event Bus Basics]]がわかりやすい。
このビデオの例では、Controllerどうしがイベントを通知し合う、つまり直接的に相手のメソッドを呼び出す代わりに「呼び出しイベント」というべきものをバスに送り込むことを行なっているが、GWTPではControllerではなくPresenterを使うことになっているので、ControllerはPresenterに読み替えなければいけない。
※ただし、GWTPの自動生成するサンプルコードでは、EventBusがPresenterに注入されるものの、使用されてはいないことに注意。