
1、Memento.java
package com.ssm.cts.pattern.memento;
public class Memento {
  private String state = "";
  public Memento(String _state) {
    this.state = _state;
  }
  public String getState() {
    return state;
  }
  public void setState(String state) {
    this.state = state;
  }
}
2、Job.java
package com.ssm.cts.pattern.memento;
public class Job {
  private String state = "";
  public void changeState() {
    this.state = "测试新玩法";
  }
  public String getState() {
    return state;
  }
  public void setState(String state) {
    this.state = state;
  }
  // 保留备份
  public Memento createMemento() {
    return new Memento(this.state);
  }
  // 恢复备份
  public void restoreMemento(Memento _memento) {
    this.setState(_memento.getState());
  }
}
3、Demo.java
package com.ssm.cts.pattern.memento;
public class Demo {
  // 测试
  public static void main(String[] args) {
    Job job = new Job();
    // 初始化当前状态
    job.setState("原始状态");
    System.out.println(job.getState());
    // 记录当前状态
    Memento mem = job.createMemento();
    // 状态改变
    job.changeState();
    System.out.println(job.getState());
    // 恢复原状
    job.restoreMemento(mem);
    System.out.println(job.getState());
  }
}