6

私が1つのGWTプロジェクトを使用しているときMVP patternHandlerManagerイベントを介してアプリケーションで通信しています。現在、私のプロジェクトに History Macanisam を実装しています。彼ら(GWT チーム)は、クラスを使用EventBusしてイベントを管理していました。

いくつかのブログを読むとき、i foudは他のアプリケーション全体のコミュニケーションにHandlerManger使用されWidgetsます。EventBus

しかし、私はそれらの両方が同じ機能を持っていると感じています。次に、この2つの実装の目的は何ですか、またはそれらの違いは何ですか.

私を助けてください

4

1 に答える 1

12

HandlerManagerEventBusそれから抽出された (因数分解された)の祖先です。

主な違いは、 にはディスパッチされるイベントに強制HandlerManagerするソースEventBusがあるのに対し、ソースなし ( fireEvent) または特定の動的ソース ( fireEventFromSource) を使用してイベントをディスパッチできることです。EventBus次に、特定のソースからのイベントに対してのみトリガーされるハンドラーを にアタッチできます。

ウィジェット内では、イベント ソースがウィジェットであることを強制する必要があります。グローバルなアプリケーション全体のイベント バスの場合、必要に応じて、ソースを必要としないか、イベントごとにソースを動的にRequestFactory設定する必要があります (そのEntityProxyChangeイベントに使用するため、特定の種類の に関連するイベントのみをリッスンできますEntityProxy) 。

注: の javadoc はHandlerManager、アプリケーション全体のイベント バスに使用することを推奨していません。

于 2013-10-03T08:56:14.557 に答える