Ich lerne gerade GWT, also versuche ich immer noch, alle seine Macken und Funktionen zu sortieren. Ich lese durch das Beispiel, das sie geben und das MVP-Muster illustrieren, und ich verstehe es ziemlich genau, außer dass ich mich über eine Sache wundere.Skalierung von gwts "Kontakten" (Beispielprojekt) AppController mit MVP
Der von ihnen verwendete AppController implementiert die Schnittstelle ValueChangeHandler und die Methode onValueChange wird ausgelöst, wenn sich der Verlauf ändert.
Mein Problem ist mit diesem onValueChange im AppController (ich habe es unten für jeden, der das Beispielprojekt nicht gesehen hat). Es führt einen Zeichenfolgenvergleich auf dem geschickten Verlaufstoken durch und instanziiert den entsprechenden Moderator, um die Aktion zu bearbeiten. Das ist alles gut und schön für die Beispiel-App mit 3 Aktionen, aber wie würde man dies zu einer echten App mit vielen weiteren Aktionen skalieren?
Die Einhaltung dieses Musters würde zu einem ziemlich großen/hässlichen else if
führen, aber ich bin immer noch zu neu für GWT (und Java), um ein besseres Muster für größere Apps abzuleiten.
Jede Hilfe wird sehr geschätzt!
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);
}
}
}
}