vuePress-theme-reco MS    2019 - 2020

Choose mode

  • dark
  • auto
  • light
主页
分类
  • 程序设计
标签
时间线
关于我
author-avatar

MS

26

文章

3

标签

主页
分类
  • 程序设计
标签
时间线
关于我
  • 备忘录模式

    • Why
      • What
        • UML
        • 角色
        • 示例
        • 适用场景

    备忘录模式

    vuePress-theme-reco MS    2019 - 2020

    备忘录模式


    MS 2020-04-17 12:24:45 面向对象 设计模式

    # Why

    备忘录模式是一种状态恢复的实现机制。比如撤销功能的实现。

    备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存,可在以后将对像恢复到原先保存的状态。

    # What

    # UML

    备忘录模式

    # 角色

    Originator(原发器):将需要保存内部状态的类设计为原发器

    Caretaker(负责人):只负责保存备忘录,不能修改对象,也无须知道对象的细节

    在设计备忘录类时需要考虑封装性,除了Originator类,不允许其他类调用备忘录类Memento的构造函数和相关方法

    # 示例

    中国象棋

    示例链接

    # 适用场景

    • 保存一个对象在某一时刻的全部状态或部分状态,实现撤销操作
    • 防止外界对象破环一个对象历史状态的封装性,隐藏对象历史状态的实现细节