备忘录模式允许对象创建自身状态的快照,并在需要时恢复到以前的状态。
通过将对象状态的副本存储在名为 备忘录 的特殊对象中来避免其他对象从外部复制对象的状态。
备忘录模式还限制了对备忘录内容的访问,只有创建备忘录的对象可以获取快照中的原始状态,其他对象只能获取快照的元数据。
在备忘录模式中,负责人 负责保存备忘录,但不能修改储存在备忘录中的状态,但是原发器对象可以随时恢复其以前的状态。
在实际应用中,例如文字编辑器,可以创建一个历史类作为负责人,每次执行操作前都会在历史类中添加一个备忘录。当需要撤销操作时,历史类会取出最近的备忘录并让编辑器进行回滚。
应用场景:
文本编辑器的撤销操作;
数据库系统的事务管理:在数据库系统中,事务必须是原子的,即要么完全成功,要么完全失败。在执行事务过程中,如果发生错误,系统可以利用备忘录模式恢复到事务开始之前的状态。
Git:可以保存项目的不同版本状态,当需要回滚到以前的版本时,可以通过备忘录恢复到之前的状态。
通过将对象状态的副本存储在名为 备忘录 的特殊对象中来避免其他对象从外部复制对象的状态。
备忘录模式还限制了对备忘录内容的访问,只有创建备忘录的对象可以获取快照中的原始状态,其他对象只能获取快照的元数据。
在备忘录模式中,负责人 负责保存备忘录,但不能修改储存在备忘录中的状态,但是原发器对象可以随时恢复其以前的状态。
在实际应用中,例如文字编辑器,可以创建一个历史类作为负责人,每次执行操作前都会在历史类中添加一个备忘录。当需要撤销操作时,历史类会取出最近的备忘录并让编辑器进行回滚。
应用场景:
文本编辑器的撤销操作;
数据库系统的事务管理:在数据库系统中,事务必须是原子的,即要么完全成功,要么完全失败。在执行事务过程中,如果发生错误,系统可以利用备忘录模式恢复到事务开始之前的状态。
Git:可以保存项目的不同版本状态,当需要回滚到以前的版本时,可以通过备忘录恢复到之前的状态。