在不破坏封装的前提下,捕获对象的内部状态,并在对象外存储这个内部状态,以便将来回滚到这一状态。
结构图
锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁、页锁和表锁。

角色与理解
-
备忘录模式共分为三种种角色:
-
Originator(原发器):需要被记录状态的类
-
Memento(备忘录):记录原发器状态的类,内部含有原发器的部分属性或者全部属性,不能被其他类所修改
-
Caretaker(管理者):管理备忘录
-
-
原发器创建备忘录记录此刻内部各属性的值,将备忘录交给管理者管理,回滚状态时,从管理者中获取备忘录,重置内部属性
核心代码
-
原发器

-
备忘录

-
管理者

-
客户端

网友评论