Je suis en train d'apprendre GWT donc je suis encore en train de trier toutes ses bizarreries et ses caractéristiques. Je lis l'exemple qu'ils donnent illustrant le modèle MVP, et je l'obtiens à peu près, sauf que je m'interroge sur une chose.Mise à l'échelle « Contacts » (projet exemple) de GWT AppController avec MVP
AppController qu'ils utilisent implémente l'interface ValueChangeHandler et la méthode onValueChange est déclenché lorsque l'histoire change.
Mon problème est avec ce onValueChange dans AppController (je l'ai inclus ci-dessous pour toute personne qui n'a pas vu l'exemple de projet). Il effectue une comparaison de chaîne sur le jeton d'historique envoyé et instancie le présentateur approprié pour gérer l'action. Tout cela est bien et dandy pour l'application exemple avec 3 actions, mais comment serait-on l'échelle d'une application réelle avec beaucoup plus d'actions? S'en tenir à ce modèle conduirait à un else if
assez grand/moche, mais je suis encore trop nouveau à GWT (et Java) pour inférer un meilleur modèle pour les grandes applications.
Toute aide est grandement appréciée!
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);
}
}
}
}