Java设计模式(十六)--备忘录模式

85 阅读1分钟

简介

备忘录模式允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。

备份发起人

public class TextEditor {

    private String text;

    public String getText() {
        return text;
    }

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

    public Memento save(){
        // 创建备忘录,并将当前对象中的数据存放到备忘录中
        return new Memento(text);
    }

    public void back(Memento memento){
        // 获取指定备忘录中的数据
        this.text = memento.getText();
    }

}

负责创建备忘录,并将自身的内部状态进行记录。

备忘录

class Memento {

    private String text;

    public Memento(String text){
        this.text = text;
    }

    public String getText() {
        return text;
    }
}

负责存储对象的内部状态。

备忘录管理者

class TextEditorHistory{

    private Stack<Memento> stack = new Stack<>();

    public void push(Memento memento){
        stack.push(memento);
    }

    public Memento pop(){
        return stack.pop();
    }

}

负责管理备忘录。