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