备忘模式
什么是备忘模式
在不破坏内部结构的前提下捕获一个对象的内部状态,这样便可在以后将该对象恢复到原先保存的状态
备忘模式最大的功能就是备份,可以保存对象的一个状态作为备份,这样便可让对象在将来的某一时刻恢复到之前保存的状态
设计思想
将一个对象的状态或内容记录起来,在状态发生改变或出现异常时,可以恢复对象之前的状态或内容
设计要点
- 发起人:需要进行备份的对象
- 备忘录:备份的状态,即一个备份的存档
- 备忘录管理者:备份存档的管理者,由它负责与发起人的交互
优缺点
优点:
- 提供了一种可以恢复状态的机制,使得用户能够比较方便地回到某个历史状态
- 实现了信息地封装,用户不需要关系状态地保存细节
缺点:
如果类地成员变量过多,势必会占用比较多地资源,而且每一次保存都会消耗一定地内存。此时可以限制保存的次数
应用场景
- 需要保存/恢复对象的状态或数据时,如游戏的存档、虚拟机的快照
- 需要实现撤销、恢复功能的场景
- 提供一个可回滚的操作