私はちょうど GWT を学んでいるので、その癖と機能をすべて整理しようとしています。私は彼らが MVP パターンを示す例を読んでいます。
彼らが使用する AppController は ValueChangeHandler インターフェイスを実装し、履歴が変更されると onValueChange メソッドがトリガーされます。
私の問題は、この AppController の onValueChange にあります (サンプル プロジェクトを見ていない人のために、以下に含めておきます)。送信された履歴トークンの文字列比較を行い、適切なプレゼンターをインスタンス化してアクションを処理します。これは、3 つのアクションを含むサンプル アプリには問題ありませんが、これをさらに多くのアクションを含む実際のアプリにスケールするにはどうすればよいでしょうか?
このパターンに固執すると、かなり大きな/醜いelse if
.
どんな助けでも大歓迎です!
public class AppController implements Presenter, ValueChangeHandler<String> {
...
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if (token != null) {
Presenter presenter = null;
if (token.equals("list")) {
presenter = new ContactsPresenter(rpcService, eventBus, new ContactsView());
}
else if (token.equals("add")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
else if (token.equals("edit")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
if (presenter != null) {
presenter.go(container);
}
}
}
}