diff --git a/pattern-memento/README.md b/pattern-memento/README.md index 79b60cd..d55d42c 100644 --- a/pattern-memento/README.md +++ b/pattern-memento/README.md @@ -1,2 +1,14 @@ -备忘录模式 +# 备忘录模式 + +## 优点 +* 它提供了一种状态恢复机制,使得用户可以方便回到特定的历史步骤,当前的状态或者存在问题时,可以使用暂时存储其他的备忘录将状态复原. +* 备忘录实现了对信息的封装,一个备忘录对象是一种原发器对象状态的表示,不会被其他diamond所感动。备忘录保持了原发器的状态,采用列表、堆栈等集合来存储备忘录对象可以实现多次撤销操作. +## 缺点 +* 资源消耗过大,如果需要保存的原发器类的成员变量太多,就不可避免需要占用大量的存储空间,每保存一次对象都是需要消耗一定的系统资源. +## 适用场景 +* 保存一个对象在某一个时刻的全部状态或部分状态,这样以后需要恢复到先前的状态,实现撤销操作 +* 防止外界对象破会一个对象历史状态的封装性,避免将对象历史状态的实现细节暴露给外界对象. + + + diff --git a/pattern-memento/src/main/java/org/panda/memento/Gamer.java b/pattern-memento/src/main/java/org/panda/memento/Gamer.java index ce9daed..82bf10b 100644 --- a/pattern-memento/src/main/java/org/panda/memento/Gamer.java +++ b/pattern-memento/src/main/java/org/panda/memento/Gamer.java @@ -40,7 +40,9 @@ public class Gamer { } } - // 拍摄快照 + /** + * 创建快照 + */ public Memento createMemento(){ Memento memento = new Memento(money); Iterator it = fruits.iterator(); @@ -54,7 +56,9 @@ public class Gamer { return memento; } - //撤销 + /** + * 撤销 + */ public void restoreMemento(Memento memento){ this.money = memento.money; this.fruits = memento.getFruits(); diff --git a/pattern-memento/src/main/java/org/panda/memento/Memento.java b/pattern-memento/src/main/java/org/panda/memento/Memento.java index 6e04010..1b5a053 100644 --- a/pattern-memento/src/main/java/org/panda/memento/Memento.java +++ b/pattern-memento/src/main/java/org/panda/memento/Memento.java @@ -4,7 +4,8 @@ import java.util.ArrayList; import java.util.List; /** - * 纪念品 + * 快照 + * @author qi */ public class Memento { int money;