前端JavaScript設計模式-備忘錄模式:
備忘錄模式指可以隨時記錄一個物件的狀態變化,並且可以隨時恢復之前的某個狀態,此模式通常在文字編輯器中應用
// 備忘狀態class Memento{ constructor(content){ this.content = content } getContent(){ return this.content }}// 備忘錄列表class CareTaker{ constructor(){ this.list = [] } add(memento){ this.list.push(memento) } get(index){ return this.list[index] }}// 編輯器class Editor{ constructor(){ this.content = null } setContent(content){ this.content = content } getContent(){ return this.content } saveContentToMemento(){ return new Memento(this.content) } getContentFromMemento(memento){ this.content = memento.getContent() }}// 使用編輯器let editor = new Editor()let careTaker = new CareTaker()editor.setContent('輸入內容一')editor.setContent('輸入內容二')// 儲存備忘錄careTaker.add(editor.saveContentToMemento())editor.setContent('輸入內容三')// 儲存備忘錄careTaker.add(editor.saveContentToMemento())editor.setContent('輸入內容四')console.log(editor.getContent())// 撤銷editor.getContentFromMemento(careTaker.get(1))console.log(editor.getContent())//撤銷editor.getContentFromMemento(careTaker.get(0))console.log(editor.getContent())
最新評論