备忘录模式

定义

在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态;

  • 用户保存对象的当前状态,并且以后可以再次恢复到此状态,通俗说法“后悔药”;
  • 需要保证被保存对象的状态不能被对象外部访问(目的是为了保护好被保存的对象的状态的完整性,以及内部实现不想外暴露)

应用场景

  • 需要保存对象在某一个时刻的状态或者部分状态
  • 如果用一个接口来让其他对象得到这些状态,将会暴露对象的内部实现细节并且破坏对象的封装性,一个对象不希望外界访问其内部状态,通过中间对象可以间接访问其内部状态。

角色划分

  • 角色一:(Originator)负责创建一个备忘录,可以记录或者回复内部状态
  • 角色二:(Menmento)备忘录角色,用于存储角色一的内部状态,并且可以防止角色一以外的对象访问角色二
  • 角色三:(Caretaker)负责存储备忘录,不能够向外暴露备忘录内容,以及进行操作;

案例

  • 原始案例:demo
    以玩游戏为例,我们每过一段时间,都要对游戏进行进行存档,下次打开的时候,可以继续游戏;这里我们使用备忘录模式;
  • json数据案例:demo
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容