Hallo,
ich bastel gerade an einer kleinen Application unter Nutzung des Zustandsmusters.
Ich habe das ganze in Model, View und Controller eingeteilt, wobei das Model verschiedene Zustände hat. Meine Frage ist wie sollte ich vom Zustand abhängige Darstellungen in der View behandeln. Ich habe zum Beispiel einen Button der abhängig vom Zustand des Models einen anderen Text anzeigen soll. Wenn man die Komponenten einzeln betrachtet würde ich sagen das der Button Text nichts mit dem Model zu tun hat (! Trennung Präsentation von Model!), also fänd ich es nicht gut eine getButtonText() Methode in den Zuständen einzurichten. Sollte ich Anhand des Zustands den Buttontext setzen also:
if(model.getAktuellerZustand().equals(zustand1)) setButtonText("text1");
if(model.getAktuellerZustand().equals(zustand2)) setButtonText("text2");
if(model.getAktuellerZustand().equals(zustand3)) setButtonText("text3");...????
Aber das find ich auch doof. Soll nicht gerade das StatePattern solche Sachen vermeiden. Oder nehme ich das ganze zu genau?
Was wäre den hier BestPractise???
Danke
Philipp
ich bastel gerade an einer kleinen Application unter Nutzung des Zustandsmusters.
Ich habe das ganze in Model, View und Controller eingeteilt, wobei das Model verschiedene Zustände hat. Meine Frage ist wie sollte ich vom Zustand abhängige Darstellungen in der View behandeln. Ich habe zum Beispiel einen Button der abhängig vom Zustand des Models einen anderen Text anzeigen soll. Wenn man die Komponenten einzeln betrachtet würde ich sagen das der Button Text nichts mit dem Model zu tun hat (! Trennung Präsentation von Model!), also fänd ich es nicht gut eine getButtonText() Methode in den Zuständen einzurichten. Sollte ich Anhand des Zustands den Buttontext setzen also:
if(model.getAktuellerZustand().equals(zustand1)) setButtonText("text1");
if(model.getAktuellerZustand().equals(zustand2)) setButtonText("text2");
if(model.getAktuellerZustand().equals(zustand3)) setButtonText("text3");...????
Aber das find ich auch doof. Soll nicht gerade das StatePattern solche Sachen vermeiden. Oder nehme ich das ganze zu genau?
Was wäre den hier BestPractise???
Danke
Philipp