Latihan 1 dari materi Memento Pattern (Undo/Redo) di Design Patterns — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Bangun text editor dengan undo/redo menggunakan Memento.
createEditor(maxHistory) return object dengan method:
type(str): tambahkan string ke text, push snapshot ke undo stack. Setiap action baru membatalkan redo stack. Jika undo stack melebihi maxHistory, buang yang paling tua.getText(): return text saat ini.undo(): restore ke snapshot sebelumnya. Push snapshot current ke redo stack. Return true jika berhasil, false jika undo stack kosong.redo(): restore snapshot dari redo stack. Push snapshot current ke undo stack. Return true atau false.historySize(): return { undo: ..., redo: ... }.Penting: snapshot disimpan SEBELUM type() menerapkan perubahan, jadi undo mengembalikan ke state sebelumnya.