欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 设计模式简述(十七)备忘录模式

设计模式简述(十七)备忘录模式

2025/5/8 17:56:36 来源:https://blog.csdn.net/tergou/article/details/147675920  浏览:    关键词:设计模式简述(十七)备忘录模式

备忘录模式

  • 描述
    • 组件
    • 使用

描述

备忘录模式用于将对象的状态进行保存为备忘录,以便在需要时可以从备忘录会对象状态;其核心点在于备忘录对象及其管理者是独立于原有对象之外的

常用于需要回退、撤销功能的场景。

组件

  • 原有对象(包含自身业务属性 + 创建备忘录 + 从备忘录恢复)
public class Originator {private String state;public void setState(String state) {this.state = state;System.out.println("Setting state to: " + state);}public String getState() {return state;}public Memento createMemento() {return new Memento(state);}public void recoverFromMemento(Memento memento) {state = memento.getState();}
}
  • 备忘录对象(包含原对象需要备份、恢复的属性)
public class Memento {private String state;public Memento(String state) {this.state = state;}public String getState() {return state;}
}
  • 备忘录管理对象
public class Caretaker {private Memento memento;public Memento getMemento() {return memento;}public void setMemento(Memento memento) {this.memento = memento;}
}

使用

public class Sample {public static void main(String[] args) {Originator originator = new Originator();Caretaker caretaker = new Caretaker();originator.setState("State #1");// 原对象创建备忘录对象 并交给备忘录管理对象caretaker.setMemento(originator.createMemento());// 原有对象基于 来自备忘录管理对象的 备忘录对象 进行恢复originator.recoverFromMemento(caretaker.getMemento());System.out.println("Restored State: " + originator.getState());}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词