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