补充备忘录模式

master
liangqi 4 years ago
parent c566e7fb02
commit b4a25d52a4
  1. 14
      pattern-memento/README.md
  2. 8
      pattern-memento/src/main/java/org/panda/memento/Gamer.java
  3. 3
      pattern-memento/src/main/java/org/panda/memento/Memento.java

@ -1,2 +1,14 @@
备忘录模式
# 备忘录模式
## 优点
* 它提供了一种状态恢复机制,使得用户可以方便回到特定的历史步骤,当前的状态或者存在问题时,可以使用暂时存储其他的备忘录将状态复原.
* 备忘录实现了对信息的封装,一个备忘录对象是一种原发器对象状态的表示,不会被其他diamond所感动。备忘录保持了原发器的状态,采用列表、堆栈等集合来存储备忘录对象可以实现多次撤销操作.
## 缺点
* 资源消耗过大,如果需要保存的原发器类的成员变量太多,就不可避免需要占用大量的存储空间,每保存一次对象都是需要消耗一定的系统资源.
## 适用场景
* 保存一个对象在某一个时刻的全部状态或部分状态,这样以后需要恢复到先前的状态,实现撤销操作
* 防止外界对象破会一个对象历史状态的封装性,避免将对象历史状态的实现细节暴露给外界对象.

@ -40,7 +40,9 @@ public class Gamer {
}
}
// 拍摄快照
/**
* 创建快照
*/
public Memento createMemento(){
Memento memento = new Memento(money);
Iterator<String> 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();

@ -4,7 +4,8 @@ import java.util.ArrayList;
import java.util.List;
/**
* 纪念品
* 快照
* @author qi
*/
public class Memento {
int money;

Loading…
Cancel
Save