go-pattern-examples/behavior/09_memento/README.md
2020-05-06 16:50:57 +08:00

16 lines
959 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 备忘录模式
备忘录模式,又叫快照模式,备份模式,用于在不暴露内部状态的情况下,保存程序内部状态到外部。
主要保存的是数据(也就是状态),这些数据可以是静态数据,也可以是一个操作描述。
在CQRS中的事件溯源模式(Event Sourcing)中,就是保存事件的操作(包含操作参数集)到持久化数据中,以达到事件回溯的目的.
现实生活中涉及备份和快照的例子就太多了,日常的打游戏存档,下次玩的时候,读取存档,读取进度,也是这个模式。
该模式中有三个关键角色:
- 1. 发起人角色 Originator 负责记录当前的内部状态,提供当前状态数据,并负责恢复备忘录数据。
- 2. 备忘录角色 Memento : 负责存放发起人对象某个时刻的内部状态,这就是要保存的数据结构类型。
- 3. 管理者角色 Caretaker: 负责保存备忘录对象。