Java实现备忘录模式(Memento)详解
需积分: 3 187 浏览量
更新于2024-09-11
收藏 30KB DOC 举报
"java备忘录"
备忘录模式(Memento Pattern)是一种设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并允许该对象在将来恢复到先前的状态。在Java中,我们可以用四个类来实现这个模式:原始对象类(Originator)、备忘对象类(Memento)、领域对象类(Domain)以及测试类(MementoTest)。
1. Originator.java - 原始对象类
这是包含需要保存状态的对象。`Originator`类通常具有创建和恢复状态的方法。在给出的例子中,`Originator`继承自`Domain`类,并提供了`getMemento()`方法用于创建备忘对象,以及`restore(Memento memento)`方法用于恢复状态。`serialVersionUID`是用于序列化版本控制的标识符。
2. Mementor.java - 备忘对象类
这个类负责存储`Originator`的内部状态。`Memento`类同样继承自`Domain`,并且在构造函数中接收一个`Originator`实例,从而复制其状态。这个类是不公开的,以确保只有`Originator`可以访问它,从而维护封装性。
3. Domain.java - 领域对象类
这个类代表了需要保存状态的数据模型。在这个例子中,`Domain`类拥有一个整型变量`num`和一个字符串列表`ids`,这些都是需要被备忘的对象可能包含的属性。`implements Serializable`意味着`Domain`类可以被序列化,这对于备忘录模式的实现是必要的,因为备忘对象通常需要被存储在内存之外的地方。
4. MementoTest.java - 测试类
这个类通常包含了程序的主入口点,用于测试备忘录模式的实现。在这里,我们可以通过创建`Originator`实例,调用其`getMemento()`方法生成备忘对象,然后进行一些操作改变`Originator`的状态,最后通过调用`restore()`方法将状态恢复至先前保存的状态。
备忘录模式的应用场景包括:
- 游戏保存和加载进度。
- 文档编辑器的撤销/重做功能。
- 在数据库事务中保存和恢复数据状态。
总结起来,备忘录模式提供了一种安全地保存和恢复对象状态的方法,而不会破坏对象的封装性。通过`Originator`、`Memento`和`Domain`类之间的协作,我们可以有效地管理对象的状态,尤其是在需要回溯或撤销操作时。
294 浏览量
2015-01-02 上传
2020-08-19 上传
2020-09-01 上传
2020-08-28 上传
2021-11-21 上传
2021-11-12 上传
点击了解资源详情
残云透月
- 粉丝: 0
- 资源: 1
最新资源
- MMG1.10_回转_MMG_MMG模型_
- 009 - 上证50ETF基金数据分析及预测
- 基于HTML实现的红色全屏扁平化互联网科技企业bootstrap(含HTML源代码+使用说明).zip
- timeline-based-animation-for-the-web-with-hype-3:Tuts +教程的源文件
- 闪客快存1.98.rar
- 期末大作业+html+css
- 电动汽车智能充电桩方案
- python-assignment2
- Lynx-login:LYNX 项目的基本 Java 登录
- ttytter-extensions:我对ttytter扩展的版本副本。 见http
- 50-各部门人员统计报告.zip
- 基于VB开发的评语管理系统设计(源代码+可执行程序+论文+开题报告+外文翻译+答辩ppt).rar
- iOS-Interview-School:此仓库是学习和练习更新
- Python库 | archivenow-2018.12.29.12.42.8-py2.py3-none-any.whl
- 毕业设计javajsp鲜花销售系统ssh-qkrp源码含文档工具包
- elasticsearch-x-content-6.3.0.jar中文-英文对照文档.zip