备忘录模式Memento保存和回复内部状态

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

public interface Memento {
 
}

public class Originator {
  private String state = "";

  public Memento createMemento() {
    return new MementoImpl(state);
  }

  public void setMemento(Memento memento) {
    MementoImpl mementoImpl = (MementoImpl)memento;
    this.state = mementoImpl.getState();
  }
 
  private static class MementoImpl implements Memento {
    private String state = "";
    public MementoImpl(String state) {
      this.state = state;
    }
    public String getState() {
      return state;
    }
  }
}

public class Caretaker {
  private Memento memento = null;
  public void saveMemento(Memento memento) {
    this.memento = memento;
  }
  public Memento retriveMememto() {
    return this.mememto;
  }
}

猜你喜欢

转载自katy1206.iteye.com/blog/2029598
今日推荐