go-pattern-examples/behavior/09_memento/README.md

16 lines
959 B
Markdown
Raw Normal View History

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