设计模式备忘录

备忘录模式



设计原则:遵循迪米特、开闭原则
常用场景:需要在对象的外部保存该对象的内部状态
使用概率:5%
复杂度:中
变化点:无
选择关键点:是否可以在必要的时候捕捉到对象的内部状态
逆鳞:大对象的备份



主要思想:
简单理解就是把对象的变化保存起来进行备份,可以恢复
简单实现在每次对象属性变化前把属性存起来,或者暴力的直接深克隆对象,然后把对象存起来.


public class Person {
    private String name;

    private Stack<String> nameRecordStack=new Stack<>();


        //当然也可以扩展 把备份和恢复提出去
    private void restoreName(){
        if(nameRecordStack!=null&&nameRecordStack.size()!=0){
            this.name=nameRecordStack.pop();
        }
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        nameRecordStack.push(name);
        this.name = name;
    }
}    

 

posted on 2017-11-07 16:24  zjj911  阅读(120)  评论(0编辑  收藏  举报