设计模式之备忘录模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之备忘录模式相关的知识,希望对你有一定的参考价值。

1、备忘录模式简介:


    a、场景:

    -  录入大批人员资料。正在录入当前人资料时,发现一个人录入错了,此时需要恢复上一个人资料时在进行修改。

    -  Word 文档编辑时,忽然电脑死机或者是断电,再打开时,可以看到 word 提示你恢复到以前的文档。

    -  管理系统中,公文撤回功能。公文发送回去后,想撤回来。


    b、核心:

    - 就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态中。

    

    c、结构:

    -  源发器类: Originator

        *  负责创建一个备忘录 Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。

    -  备忘录类: Memento

        *  负责存储 Originator 对象的内部状态,并可防止 Originator 以外的其他对象,访问备忘录 Memento。

    -  负责人类: CareTake

        *  负责保存好备忘录 Memento。


2、简单的代码演示:

    

    a、Emp 类为源发器类(在类中提供了 memento() 方法,进行备忘操作,即返回一个新创建的备忘录类对象。提供了 recovery() 方法,提供恢复上一步的操作。)EmpMemento 类为备忘录类,即类中提供和 Emp 类中一样的成员变量。EmpCareTaker 类为负责人类,提供保存备忘录的 set、get 方法。


技术分享

技术分享

技术分享


    c、看看 Client17 测试类输出的结果,以及示例代码中的类图关系。


技术分享

技术分享


    注:EmpCareTaker 可以用 List 或者 Stack 进行保存,这样就可以进行一系列的撤销操作了。


3、开发中常见的应用场景:


    -  棋类游戏中的悔棋操作

    -  普通软件中的撤销操作

    -  数据库软件中的,事务管理中的回滚操作

    -  Photoshop 软件中的历史记录

本文出自 “12392717” 博客,请务必保留此出处http://12402717.blog.51cto.com/12392717/1930111

以上是关于设计模式之备忘录模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之备忘录模式

设计模式之状态模式与备忘录模式详解和应用

GoF 23 种设计模式之状态模式和备忘录模式

设计模式之备忘录模式

设计模式之备忘录

设计模式之备忘录模式