Genau das, was Sir Rufo hier anspricht, ist grob mein Problem bie der Validierung. Denn das Model kann durchaus asynchron zur View laufen, wenn in der View falsche Daten stehen und diese somit nicht aufs Model übernommen werden. Ebenso will ich evtl. auch einen "Zurücksetzen"-Button haben, der nicht das Model neu aus der
DB lädt, oder einen Abbrechen-Button, der keinerlei Änderungen der aktuellen Dialogs übernimmt. Würde ich alle Änderungen live ins Model übernehmen, habe ich dann ja mehr oder weniger Probleme... An der Stelle hat das dann nichts mehr mit Usability zu tun.
Und genau das ist der Grund für die Existenz von Pattern: Sie beschreiben lediglich in einer Art Metasprache die Lösung eines bestimmten Problems, aus der Erfahrung vieler Mannjahre heraus.
Für dieses Problem gibt es z.B. das Memento Pattern. damit erstellst Du eine exakte Arbeitskopie der zu bearbeitenden Daten -> im Model. Wenn der Controller/Presenter den Befehl erhält "Alles gut, speichern" wird diese Kopie validiert und in die Datenschicht übertragen (oder Fehler reklamiert).
Kommt der Befehl "Vergiss es, wollte nur spielen" wird die Kopie einfach gelöscht und nix passiert weiter.
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog