设计模式——备忘录模式

1.备忘录模式的定义与特点

备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。
我的理解:备忘录模式就是后悔药。它将对象原先的属性记录下来,等到“后悔”的时候就可以回到原来的状态。当然有了备忘录,还要有一个使用备忘录的人,那么还需要一个管理者(CareTaker)。
eg.游戏角色有攻击力和防御力,大战时攻击力和防御力都会大减,战斗之后,攻击力和防御力会恢复原来的值,那么只要在大战前记录下该角色的攻击力和防御力,大战后就能原样恢复了。
设计模式——备忘录模式_第1张图片
该角色关于备忘录有两个方法:
设计模式——备忘录模式_第2张图片

2.备忘录模式的结构

备忘录模式的主要角色如下:

发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。
备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。
管理者(Caretaker)角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。

设计模式——备忘录模式_第3张图片

备忘录模式的注意事项和细节

  1. 给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态
  2. 实现了信息的封装,使得用户不需要关心状态的保存细节
  3. 如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存, 这个需要注意
  4. 适用的应用场景:1、后悔药。2、打游戏时的存档。3、Windows 里的 ctri + z。
    4、IE 中的后退。 4、数据库的事务管理




尚硅谷-图解Java设计模式(韩顺平)
备忘录模式(详解版)
如有错误,欢迎指正

你可能感兴趣的:(设计模式,备忘录模式)