Entwurfsmuster · Middle · Frage 7 von 75
Wie implementiert man Undo/Redo mit dem Command-Muster?
- 1Die Seite neu laden und alle Aktionen außer der letzten erneut abspielen
- 2Nach jeder Nutzeraktion eine Kopie des ganzen DOM speichern
- 3Stapel von Commands halten, jeder mit
executeundundo
Antwort zeigen
Richtige Antwort: Stapel von Commands halten, jeder mit execute und undo
Erklärung
Ein ausgeführtes Command kommt auf den undo-Stapel; Rückgängigmachen ruft undo() auf und verschiebt das Command auf den redo-Stapel. Eine neue Aktion leert redo. Eine Alternative bei unveränderlichem State ist das Memento-Muster: frühere Versionen des State aufbewahren.