当前位置:网站首页>备忘录模式
备忘录模式
2022-08-04 19:12:00 【wfsm】
备忘录模式(Memento):快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态
备忘录模式角色:
- 发起人(Originator) : 记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,他可以访问备忘录里的所有信息
- 备忘录(Memento): 负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人
- 管理者(Caretaker): 对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改
代码:
备忘录
@Data
@AllArgsConstructor
public class Memento {
private String state;
}
管理者
@Data
public class Caretaker {
private Memento memento;
}
发起人
@Data
public class Originator {
private String state;
// 保存状态
public Memento createMemento(){
return new Memento(state);
}
// 恢复
public void restoreMemento(Memento memento){
this.state = memento.getState();
}
}
测试:
public static void main(String[] args) {
Originator originator = new Originator();
Caretaker caretaker = new Caretaker();
//
originator.setState("50");
System.out.println("初始状态: "+originator.getState());
// 存 当前状态
caretaker.setMemento(originator.createMemento());
originator.setState("51");
System.out.println("新的状态: "+originator.getState());
// 恢复状态
originator.restoreMemento(caretaker.getMemento());
System.out.println("恢复状态:"+originator.getState());
}
引用:https://www.jianshu.com/p/f0236f5b60f1
边栏推荐
猜你喜欢
随机推荐
SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
元国度链游系统开发
The Development and Current Situation of Object Detection
Day018 继承
动手学深度学习_VggNet
什么是内部客户服务?
编译optimize源码实现过程
c语言进阶篇:自定义类型--结构体
Openharmony code framework (2) the person that
如何进行自动化测试?
当前最快的实例分割模型:YOLACT 和 YOLACT++
win10 uwp win2d 离屏渲染
ros2订阅esp32发布的电池电压数据
正畸MIA微种植体支抗技术中国10周年交流会在沈举办
作业8.3 线程同步互斥机制条件变量
MySQL远程备份策略举例
一些性能测试的要点
win10 uwp 修改Pivot Header 颜色
Openharmony first experience (1)
按需视觉识别:愿景和初步方案