[控场AI]
概念Memento Pattern

备忘录模式

一种软件设计模式,通过保存对象在特定时刻的状态快照(备忘录)来实现撤销/回滚功能,包含发起人、备忘录和管理者三个经典角色,源自1994年Gang of Four设计模式著作

时间轴 (近 90 天)

10月9日

备忘录模式(Memento Pattern)的核心思路是在做出改变之前先对当前状态拍一张快照,需要撤销时直接把对象恢复到快照状态

待验证50%
10月9日

备忘录模式有三个经典角色:发起人(Originator)、备忘录(Memento)和管理者(Caretaker)

待验证50%
10月9日

拥有状态的对象应当自己负责快照和恢复自己,管理历史记录的机制不需要了解对象内部如何工作,只需知道可以snapshot和restore

待验证50%
10月9日

《设计模式》一书总结了23种经典设计模式,备忘录模式是其中之一

待验证50%
10月9日

备忘录模式与命令模式的根本区别是:备忘录存储状态,命令存储操作

待验证50%
10月9日

当状态拷贝成本低、有许多不同类型的mutation且恢复旧状态比反转每个操作更简单时适合用备忘录;当快照庞大、单次改动小或操作本身是有意义的领域概念需要进入审计日志时命令模式往往更好

待验证50%
10月9日

恢复对象状态不等于撤销副作用,无法撤回已发送的邮件、反转API调用或退回别人账户的钱,涉及外部系统需要事务、补偿操作等更复杂的架构机制

待验证50%
10月9日

快照不应自动序列化每个属性,而应只捕获与恢复目的相关的状态,运行时信息如last_run_at、执行次数通常不应在撤销时被回退

待验证50%
10月9日

加入重做(redo)功能只需在History中维护undo和redo两个栈:执行undo时把快照压入redo栈,执行redo时再压回undo栈

待验证50%

全部知识事实 (9)

来源文章