行为型设计模式-备忘录 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](https://www.notion.so/image/https%3A%2F%2Fdeb-gmi.oss-cn-beijing.aliyuncs.com%2Fimg%2F20210409115510.png?table=block&id=129465a1-5c7c-49fa-8ca8-98c376decddc&cache=v2)
代码
output: