定义发起人类
代码语言: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方法,用于创建备忘录和从备忘录中恢复状态。