行为型模式——备忘录模式(Memento)

QuickSDK | 2018-05-30 | 技术干货

开头

    我一直坚信生活中不存在后悔药,但是今天在软件开发中竟然存在后悔药这一概念,例如打游戏,不能说游戏主人公死了以后就永远能在玩这个游戏了吧,那游戏体验如果是这个样子,我觉得真的没有必要再玩了。今天就带大家介绍一下设计模式中的后悔药——备忘录模式。




内容

    我们先从词义上分析一下备忘录一词,好比账本,通讯录、数据库、他们好比记忆工具一样,记录着不同时期每一笔花销状态,每一个人的电话信息状态,每一个不同时间段数据的状态。可见我们可以随意的翻看不同时间段的各种数据信息的状态。这就是备忘录模式。

     备忘录模式大致分为三类角色,分别为:发起人(Originator)、备忘录(Memento)、管理者(Caretaker)

UML图:



例子:下面我们以游戏中的某一游戏角色的状态进行展示。

发起人(Originator):创建一个备忘录保存人物当前状态,恢复以前状态。


备忘录(Memento):存储人物角色状态。

管理者(Caretaker):保存备忘录。


客户端


显示结果


 

总结

 

备忘录模式(Memento Pattern)在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。

优点:备忘录模式实现了信息的封装,可以恢复到以前的状态。

缺点:如果保存的状态太多,占用大量内存空间,浪费系统资源。

适用环境:1)系统需要执行回滚以及撤销操作。

                 (2)可以保存一个对象某个时刻的状态,且这种状态不会被外界破坏。


来源:https://blog.csdn.net/fjxcsdn/article/details/80514399?utm_source=copy

商务合作

李先生:13880511661

市场合作

赵先生:15390049857

技术支持

彭女士:18202818615

官方技术交流群

QQ群:608554925