备忘录模式(memento pattern)
备忘录模式(memento pattern):属于对象的行为模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就将该对象恢复到原乡保存的状态。
备忘录模式UML图
Java
备忘录模式涉及的角色
发起人(Originator)角色:负责创建一个含有当前的内部状态的备忘录对象。并可使用备忘录恢复内部状态。备忘录角色(Memento)角色:负责存储 Originator 对象的内部状态,并可防止 Originator 以外的其它对象访问备忘录 Memento。备忘录包含两个等效的接口:
-
窄接口:管理者(Caretaker)对象只能看到备忘录的窄接口(narrow interface),它只能将备忘录传递给其它对象。
-
宽接口:发起人(Originator)能够看到一个宽接口,允许它访问返回到先前状态所需的所有数据。
管理者角色(Caretaker)角色:负责保存好备忘录对象 Memento,不能对备忘录的内容进行操作或检查。
示例代码
发起人类 Originator
Java
备忘录类 Memento
Java
管理者类 Caretaker
Java
客户端测试类 TestMementoPattern
Java
备忘录模式使用场景
备忘录模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多熟悉中的一小部分时,Originator 可以根据保存的 Memento 信息还原到前一状态。
Java学习资料获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==