备忘录模式-20

发布时间 2023-08-18 09:30:53作者: CSloe

概述

备忘录模式(Memento Pattern)又称 Token,它在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存,在之后可以将该对象的状态恢复至保存时的样子。

优点:提供了状态恢复机制。
缺点:资源消耗大。

class Originator {
  private String state;
  
  public Memento save() {
    return new Memento(state);
  }
  
  public void restore(Memento m) {
    this.state = m.getState();
  }
}

class Memento {
  private String state;
}

class Caretaker {
  private Memento m;
  
  public Memento get() {
    return m;
  }
  
  public void set(Memento m) {
    this.m = m;
  }
}

图示:
image

参考

[1] 刘伟, 设计模式, 2011.