总第70篇
我们在工作中经常会将自己要做的事写在一个小便签上,以便在自己忘记工作内容时,可以通过便签快速恢复记忆。在程序中,我们将一个对象的状态或内容记录起来,在其状态发生改变或出现异常时,可以恢复对象之前的状态或内容,这称之为备忘录模式。本篇将详细梳理备忘录模式。
1.备忘录模式的概念
备忘录模式(Memento Pattern
)提供了一种弥补真实世界缺陷的方法,它是在不破坏封装性的前提下,捕获一个对象的内部状态,并在此对象之外保存这个状态,此后即可将此对象恢复到原先保存的状态。 更通俗地说,备忘录模式就是一个对象的备份模式,它提供了一种程序数据的备份方法。
备忘录模式的通用类图关系如下图所示:
![v2-02b9c889f322efc9f63c97b8cd2d0d56_b.jpg](https://img-blog.csdnimg.cn/img_convert/3f1db2c9cdf5889d4a3eee943edea37d.png)
从上面的类图可以看出,此模式主要包含三个角色:
Originator发起人角色
:需要进行备份的对象。记录当前时刻的内部状态,负责定义哪些属于备份范围的状态, 负责创建和恢复备忘录数据;Memento备忘录角色
:备份的状态,即一个备份的存档;Caretaker备忘录管理