标签:备忘录 复杂度 属性 public 使用 span rest 概率 setname
备忘录模式
设计原则:遵循迪米特、开闭原则
常用场景:需要在对象的外部保存该对象的内部状态
使用概率: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; } }
标签:备忘录 复杂度 属性 public 使用 span rest 概率 setname
原文地址:http://www.cnblogs.com/zhaojj/p/7799565.html