= イベントバス = == 目的 == [[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に注入されるものの、使用されてはいないことに注意。