1、备忘录模式概念
第一点:行为涉及模式
第二点:用于保存对象的当前状态,并且以后可以再次恢复到此状态(后悔药)。
2、备忘录模式的定义
在不破坏封闭的前提下,捕获一个对象的内部状态,并在改对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的对象。
3、备忘录模式的使用场景
场景一:需要保存对象在某一个时刻的状态或者部分状态
场景二:如果用一个接口(协议)来让其他对象得到这些状态,将会暴露对象的实现细节并且破坏对象的封装性,一个对象不希望外界直接访问其内部状态,通过中间对象可以间接访问其内存状态。
4、备忘录模式的角色划分
角色一(Originator):负责创建一个备忘录,可以记录和恢复内部状态。
角色二(Memento):备忘录角色,用于存储角色一的内部状态,并且可以防止角色一以外的对象访问角色二。
角色三(Caretaker):负责存储备忘录,不能够向外暴对备忘录内容进行操作。
5、备忘录模式的原理案例
基本结构:
案例:游戏存档
首先:定义一个备忘录->任务的等级、属性、分数等
其次:定义一个创建备忘录角色Originator
最后:定义一个负责存储备忘录
案例一:原始状态->命令模式(请求者、接受者、具体命令)
第一步:实体类->银行账户对象
第二步:保存实体->Bank
第三步:实现命名->BankCommand
案例二:备忘录模式优化案例
第一步:创建备忘录
第二步:创建备忘录->管理器