Java设计模式(十五):备忘录模式

备忘录模式(memento pattern)

备忘录模式(memento pattern):属于对象的行为模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就将该对象恢复到原乡保存的状态。


备忘录模式UML图

Java设计模式(十五):备忘录模式

Java


备忘录模式涉及的角色

发起人(Originator)角色:负责创建一个含有当前的内部状态的备忘录对象。并可使用备忘录恢复内部状态。备忘录角色(Memento)角色:负责存储 Originator 对象的内部状态,并可防止 Originator 以外的其它对象访问备忘录 Memento。备忘录包含两个等效的接口:

  • 窄接口:管理者(Caretaker)对象只能看到备忘录的窄接口(narrow interface),它只能将备忘录传递给其它对象。

  • 宽接口:发起人(Originator)能够看到一个宽接口,允许它访问返回到先前状态所需的所有数据。

管理者角色(Caretaker)角色:负责保存好备忘录对象 Memento,不能对备忘录的内容进行操作或检查。


示例代码

发起人类 Originator

Java设计模式(十五):备忘录模式

Java

备忘录类 Memento

Java设计模式(十五):备忘录模式

Java

管理者类 Caretaker

Java设计模式(十五):备忘录模式

Java

客户端测试类 TestMementoPattern

Java设计模式(十五):备忘录模式

Java


备忘录模式使用场景

备忘录模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多熟悉中的一小部分时,Originator 可以根据保存的 Memento 信息还原到前一状态。

Java学习资料获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章