备忘录模式
基本概念
备忘录模式允许在不暴露对象实现的情况下捕获对象的内部状态,并在对象之外保存这个状态,仪表后续可以还原到之前的状态,有点类似Ctrl+Z
。
基本结构
备忘录模式包括一下几个重要角色:
- 发起人
Originator
: 需要还原状态的那个对象,负责创建一个【备忘录】,并使用备忘录记录当前时刻的内部状态。 - 备忘录
Memento
: 存储发起人对象的内部状态,它可以包含发起人的部分或全部状态信息,但是对外部是不可见的,只有发起人能够访问备忘录对象的状态。
备忘录有两个接口,发起人能够通过宽接口访问数据,管理者只能看到窄接口,并将备忘录传递给其他对象。
- 管理者
Caretaker
: 负责存储备忘录对象,但并不了解其内部结构,管理者可以存储多个备忘录对象。 - 客户端:在需要恢复状态时,客户端可以从管理者那里获取备忘录对象,并将其传递给发起人进行状态的恢复。