设计模式-备忘录模式(二)

2023-05-04 15:52:17 浏览数 (1)

定义发起人类

代码语言:javascript复制
public class TextEditor {
    private String text;
    private int cursorPosition;

    public TextEditor(String text) {
        this.text = text;
        this.cursorPosition = 0;
    }

    public void setText(String text) {
        this.text = text;
    }

    public String getText() {
        return text;
    }

    public void setCursorPosition(int cursorPosition) {
        this.cursorPosition = cursorPosition;
    }

    public int getCursorPosition() {
        return cursorPosition;
    }

    public TextEditorMemento createMemento() {
        return new TextEditorMemento(text, cursorPosition);
    }

    public void restoreMemento(TextEditorMemento memento) {
        this.text = memento.getText();
        this.cursorPosition = memento.getCursorPosition();
    }
}

发起人类TextEditor包含了需要保存和恢复的状态text和cursorPosition。它提供了getter和setter方法,用于操作状态。同时,它还提供了createMemento方法和restoreMemento方法,用于创建备忘录和从备忘录中恢复状态。

0 人点赞