我剛剛學習GWT,所以我仍然試圖理清它的所有怪癖和特徵。我正在通過他們給出的例子來說明MVP模式,我幾乎可以得到它,除了我想知道一件事情。使用MVP縮放gwt的「聯繫人」(示例項目)AppController
他們使用的AppController實現了ValueChangeHandler接口,並且在歷史更改時觸發onValueChange方法。
我的問題是在AppController中的這個onValueChange(我已經將它包含在下面,以供任何人沒有看到示例項目)。它正在對發送的歷史令牌進行字符串比較,並實例化相應的演示者來處理該操作。對於具有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);
}
}
}
}