十一个行为型模式6:备忘录模式-Memento Pattern【学习难度:★★☆☆☆,使用频率:★★☆☆☆

来源:互联网 发布:上海师范大学网络课程 编辑:程序博客网 时间:2024/06/06 17:29

引入动机:在应用软件的开发过程中,很多时候我们都需要记录一个对象的内部状态。

在具体实现过程中,为了允许用户取消不确定的操作或从错误中恢复过来,需要实现备份点和撤销机制,而要实现这些机制,必须事先将状态信息保存在某处,这样才能将对象恢复到它们原先的状态。

备忘录模式是一种给我们的软件提供后悔药的机制,通过它可以使系统恢复到某一特定的历史状态。

备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。

这里写图片描述

备忘录模式包含如下角色:
Originator 原发器:

package dp.memento;public class Originator {  private String state;  public Originator(){}  // 创建一个备忘录对象  public Memento createMemento(){    return new Memento(this);  }  // 根据备忘录对象恢复原发器状态  public void restoreMemento(Memento m){     state = m.state;        }        public void setState(String state)        {                this.state=state;        }        public String getState()        {                return this.state;        }}

Memento 备忘录:

package dp.memento;class Memento {  private String state;  public Memento(Originator o){    state = o.state;        }        public void setState(String state)        {                this.state=state;        }        public String getState()       {               return this.state;       }} 

Caretaker 负责人:

package dp.memento;public class Caretaker{    private Memento memento;    public Memento getMemento()    {        return memento;    }    public void setMemento(Memento memento)    {        this.memento=memento;    }} 
阅读全文
0 0