読者です 読者をやめる 読者になる 読者になる

GWT 2.1のMVP

GWT MVP Development with Activities and Places - Google Web Toolkit - Google Code
GWT 2.1までのMVPパターンはフレームワークとしては提供されていませんでしたが(GWTPのような外部のフレームワークはありました)、2.1からはActvityとPlaceというクラス群が提供されるようになりました。練習のために2.0のドキュメントで使われているContactsというサンプルアプリを2.1バージョンに変更してみました。変更したコードは以下にあります。
kenichiro22 / Contacts / overview – Bitbucket
印象としては、純粋なViewとPresenterの分離という点について変わりありませんが、画面遷移や履歴管理をサポートする部分が強化されているので、その辺の作法が明確化されるのはよいと思います。Historyを自分で管理する必要はなくなります。
その一方で、ActvityやPlaceを使うために必要なクラス(ActivityMapperとかActivityManagerとかPlaceHistoryMapperとか)が、かなり多いのは面倒ですね。

あとは、実際にAjaxでアプリケーションを作成するのであればContactsサンプルのように1画面内で遷移するというよりは、Mailサンプルのような複数ペインの構成も多いと思います。ドキュメントの一番最後に以下のような記述がありますが、そのような場合にどうActivityとPlaceを構成するのがよいのかは、いまいち理解できていません。

What about apps with multiple panels in the same window whose state should all be saved together in a single URL? GWT 2.1 does not attempt to provide a generic implementation of a composite Place; however, your app could create a CompositePlace, CompositeActivity, and CompositePlace.Tokenizer classes that delegate to the constituent members. In this case, only the composite objects would need to be registered with your app's ActivityMapper and PlaceHistoryMapper.