5

私はついにGWTを「取得」し始めています。いつでも、次のようPlaceChangeEventにアプリで起動できます。EventBus

History.newItem("token-for-some-new-place");

これにより、イベントがバスに追加されます。これにより、登録された はそれをActivityManagerすくい上げ、その内部を調べて、のに関連付けられたActivityMapperを与えます。ActivityPlaceChangeEventPlace

( ActivityMVP/MVC のプレゼンターまたはコントローラー オブジェクトと同様) は、(サーバーへの RPC 呼び出しを介して) 必要なデータを取得し、ビジネス ロジックを実行して、表示する最終的なビュー (通常Compositeは何らかの種類の) を構成します。

ホスト ページに表示領域が 1 つしかない非常に単純な GWT アプリについて話している限り、前述のように「理解」できます。

私がいま気になっているのは、アプリに複数の表示領域 (互いに非同期に更新できる領域) が含まれている場合にどうなるかということです。

だから私は尋ねます:

  1. ActivityMappersはどの程度の粒度である必要がありますか? すべての s をすべてのies にAppActivityMapperマップするアプリ全体が 1 つだけですか、それとも、複数のマッパーがある場合に何らかの階層/分解が必要ですか? (そして、これに対するあなたの答えが「これはアプリケーションのニーズに依存します」という行に沿ったものである場合は、適切なレベルの粒度を実現する要件/ニーズを説明してください!)PlaceActivityActivityMapper
  2. Placeaがアプリ内の URL トークンを表している場合( Placea をブックマーク可能な状態にするため)、複数の表示領域 (D1、D2、D3) を持つより複雑なアプリがあるとどうなりますか。1 つの URL トークン (つまり ) はどのようhttp://myapp.com/#token-for-some-new-placeに D1、D2、および D3 にマップされますか? つまり、すべてのメソッドが呼び出されるアクティビティ ( )ActivityMapper#getActivityのリストを返すことができなければならないということではないでしょうか?List<Activity>start(AcceptsOneWidget, EventBus)

ここで助けてくれてありがとう - コード例は常に揺れ動く.

4

1 に答える 1

5

APlaceは場所を表します。それは私がどこから来たのかという実存的な質問に答えます. 、私はどこですか?どこに行くの?.

特定の場所で、ユーザーに表示される画面が複雑になり、多数の表示領域に分割される場合があります。それぞれが によって管理され、指定された場所に対してwhichを使用ActivityManagerするかどうかを尋ね、すべてを疎結合にします (アクティビティは、自分がどこで使用されているか、どの場所で使用されているか、他のどのアクティビティが同時に実行されているかを知る必要はありません。等。)ActivityMapperActivity

したがって、アクティビティのリストを返すマッパーではなく、それぞれが 1 つのアクティビティを返すマッパーのリストが作成されます。

見る:

于 2012-10-27T20:50:09.207 に答える