备忘录模式(Memento Pattern)
定义:Without violating encapsulation,capture and externalize an object’s
internal state so that the object can be restored to this state
later.(在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。)
备忘录(Memento)模式又称标记(Token)模式。
组成:
- 备忘录(Memento)角色:备忘录角色存储“备忘发起角色”的内部状态。“备忘发起角色”根据需要决定备忘录角色存储“备忘发起角色”的哪些内部状态。为了防止“备忘发起角色”以外的其他对象访问备忘录。备忘录实际上有两个接口,“备忘录管理者角色”只能看到备忘录提供的窄接口——对于备忘录角色中存放的属性是不可见的。“备忘发起角色”则能够看到一个宽接口——能够得到自己放入备忘录角色中属性。
- 备忘发起(Originator)角色:“备忘发起角色”创建一个备忘录,用以记录当前时刻它
的内部状态。在需要时使用备忘录恢复内部状态。 - 备忘录管理者(Caretaker)角色:负责保存好备忘录。不能对备忘录的内容进行操作
或检查。
GOF 在《设计模式》中总结了使用备忘录模式的前提:
- 必须保存一个对象在某一个时刻的(部分)状态, 这样以后需要时它才能恢复到先前的<
备忘录模式(Memento Pattern)允许在不破坏封装性的前提下,捕获和恢复对象的内部状态。备忘录角色存储发起人的内部状态,发起人创建备忘录并可在需要时恢复。备忘录管理者只负责保存备忘录,不进行内容操作。文章探讨了Java中备忘录模式的实现,包括clone方式和多备份情况,并提醒注意备忘录的生命周期和性能。此外,还总结了设计模式的分类。
订阅专栏 解锁全文
205

被折叠的 条评论
为什么被折叠?



