行为型设计模式-备忘录 Memento

date
Apr 24, 2021
slug
design-pattern-memento
status
Published
tags
设计模式
summary
type
Page

简介

允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态,该状态保存在对象之外,这样就可以不破坏原有对象的封装性了。
 

角色

  • Originator 原发器
    • 即需要被保存状态的类
  • 抽象 Memento 备忘录类
    • 定义备忘录基本接口
      可以看做成是快照 Snapshot
  • 具体 Memento 备忘录类
    • 实现接口
  • Caretaker 负责人
    • 即连接Originator和Memento的类,维护一个Memento队列,通过操作队列实现undo redo的操作
 

类图

图中,ConcreteOriginator通过save方法,生成一个Memento,Caretaker 的history属性保存这些Memento,实现undo操作。
notion image
 

代码

output:
 

© 菜皮 2020 - 2024