Wzorce projektowe · Middle · Pytanie 7 z 75
Jak zaimplementować undo/redo wzorcem Command?
- ✓Poprawna odpowiedź: Trzymać stosy poleceń, każde z
executeiundo - 2Zapisywać kopię całego DOM po każdej akcji użytkownika
- 3Przeładować stronę i odtworzyć wszystkie akcje oprócz ostatniej
Wyjaśnienie
Wykonane polecenie trafia na stos undo; cofnięcie wywołuje undo() i przenosi polecenie na stos redo. Nowa akcja czyści redo. Alternatywa dla niemutowalnego stanu to wzorzec Memento: przechowywanie poprzednich wersji stanu.