Я просто изучаю GWT, поэтому я все еще пытаюсь разобраться во всех своих причудах и функциях. Я читаю пример, который они дают, иллюстрируя шаблон MVP, и я в значительной степени его понимаю, за исключением того, что мне интересно об одном.
Используемый AppController реализует интерфейс ValueChangeHandler, а метод onValueChange запускается при изменении истории.
Моя проблема заключается в этом onValueChange в AppController (я включил его ниже для тех, кто не видел образец проекта). Он выполняет сравнение строк в токенах, отправленных в историю, и создает экземпляр соответствующего ведущего для обработки действия. Это все прекрасно и dandy для примера приложения с 3 действиями, но как бы масштабировать это в реальном приложении со многими другими действиями?
Приклеивание к этому шаблону приведет к довольно большому/уродливому else if
, но я все еще слишком новичок в GWT (и java), чтобы сделать лучший образец для более крупных приложений.
Любая помощь очень ценится!
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);
}
}
}
}