`
bjsunrose
  • 浏览: 57246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

23-18、备忘录模式

 
阅读更多
1、备忘录模式(Memento Pattern)提供了一种弥补真实世界缺陷的方法,让“后悔药”在程序的世界中真实可行,其定义如下:Without voilating encapsulation, capture and externalize an object's internal state so that the object can be restored to this state lacter(在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可讲该对象恢复到原先保存的状态)

2、备忘录模式的角色
  一、Originator-发起人角色
  记录当前时刻的内部状态,负责定义那些属于备份范围的状态,负责创建和恢复备忘录数据。
  二、Memento-备忘录角色
  负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态
  三、Caretaker-备忘录管理员角色
  对备忘录进行管理、保存和提供备忘录。

3、备忘录模式的注意事项
  一、备忘录的生命周期
  备忘录创建出来就要在“最近”的代码中使用,要主动管理他的生命周期,建立就要使用,不使用就要立即删除其引用,等待垃圾回收器对它的回收处理。
  二、备忘录的性能
  不要再频繁建立备份的场景中使用备忘录模式(比如一个for循环中),原因有二:一是控制不了备忘录建立的对象数量,二是大对象的建立是要耗费资源的,系统的性能需要考虑。
  因此如果出现这样代码,设计师就应该好好想想怎么修改架构了。

4、最佳实践
  备忘录模式是设计上的“月光宝盒”,可以让我们回到需要的年代;是程序数据的“后悔药”,吃了它就可以返回上一个状态,是设计人员的定心丸。确保即使在最坏的状态下也能最近的对象状态,如果大家看懂的话,请各位在设计的时候就不要使用数据库的临时表作为缓存备份数据了,虽然是一个简单的方法,但是它加大了数据库操作的频繁度,把压力下放到数据库了,最好的解决方法就是使用备忘录模式。


分享到:
评论

相关推荐

    JAVA设计模式--备忘录模式.docx

    备忘录模式,作为一种行为模式,在软件设计中扮演着重要的角色。它提供了对象状态保存和恢复的能力,使得对象能够在某个时刻的状态被临时存储起来,并在需要时回退到该状态,从而实现撤销、回滚等功能。在JAVA编程中...

    设计模式-备忘录模式(讲解及其实现代码)

    备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。备忘录模式的核心思想是封装对象的状态,将其保存到一个独立的对象(备忘录)中,而...

    java设计模式-备忘录模式源代码

    备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前的状态。这个模式的名字来源于我们日常生活中使用的备忘录,它记录了一些重要的信息,当需要...

    c#代码介绍23种设计模式-23备忘录模式(附代码)

    个人理解:(利用备忘录对象来保存发起人的内部状态,需要恢复时可以从备忘录对象获取) 1、创建联系人类,作为发起人的内部状态 public class ContactPerson -> public string Name { get; set; } -> public ...

    设计模式专题之(十九)备忘录模式---设计模式备忘录模式示例代码(python--c++)

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。这种模式通常用于游戏存档、撤销/重做操作、以及...

    JAVA-设计模式-行为型模式-备忘录模式

    JAVA-设计模式-行为型模式-备忘录模式

    设计模式 - 备忘录模式(C++实例)

    备忘录模式是一种在不破坏封装性的前提下,捕获一个对象的状态,并允许在未来的某个时刻恢复这个状态的设计模式。这种模式在很多场景下都非常有用,例如在游戏中保存进度、在编辑器中撤销/重做操作等。备忘录模式的...

    备忘录模式.rar备忘录模式.rarjava设计模式

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作历史或者游戏进度...

    设计模式-备忘录

    备忘录模式是一种常用的设计模式,它在软件工程中用于保存对象的状态,以便在需要时恢复到之前的状态。这种模式的主要目标是实现数据的安全存储,同时保持对象的封装性,避免对外部对象直接访问其内部状态。在iOS...

    Java设计模式-备忘录

    **Java设计模式——备忘录模式详解** 备忘录模式是一种行为设计模式,它允许对象在不破坏封装性的前提下捕获并存储其内部状态,以便稍后恢复到该状态。这种模式常用于在游戏中保存进度、撤销/重做操作、以及在复杂...

    设计模式之备忘录模式

    备忘录模式(Memento Pattern)是软件设计模式中的一种,属于行为模式。它提供了一种方式来恢复对象到之前的状态,即“撤销”操作。备忘录模式的核心思想是保存对象的内部状态,以便在需要时能恢复到这个状态,而...

    设计模式之备忘录模式(Memento Pattern)

    备忘录模式(Memento Pattern)是软件设计模式中的一种行为模式,它的主要目的是在不破坏对象封装性的前提下,允许对象在特定时刻保存其内部状态,并能够在之后恢复到保存时的状态。这种模式广泛应用于撤销/重做功能...

    18备忘录模式.zip

    - `备忘录模式-游戏角色状态01` 和 `备忘录模式-游戏角色状态02` 可能是两个不同阶段的游戏角色状态实例,它们展示了备忘录模式在游戏场景中的应用。可能包含角色的位置、生命值、攻击力等属性,这些状态可以通过...

    java常用设计模式-备忘录模式

    Java 备忘录模式详解 备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的情况下捕获和恢复对象的内部状态。该模式通常用于需要撤销操作或恢复先前状态的情况下。备忘录模式包括三个主要组件...

    设计模式_备忘录模式.zip

    备忘录模式是一种在软件工程中广泛使用的结构型设计模式,其主要目的是为了在不破坏封装性的前提下,能够安全地保存对象的状态,并在需要时恢复到先前保存的状态。这种模式通常用于那些需要记录和回滚操作的重要场景...

    java设计模式-备忘录模式

    Java设计模式中的备忘录模式(Memento Pattern)是一种用于保存对象状态的模式,以便在未来某一时刻能够恢复到之前的状态。这种模式的核心在于在不违反对象封装性的前提下,捕获对象的内部状态并将其存储起来。备忘...

    android-shuffle 备忘录源代码

    "android-shuffle 备忘录源代码" 这个标题指的是一个针对Android平台开发的名为“shuffle”的备忘录应用的源代码。"shuffle"可能表示该应用具有某种随机或重新排列功能,例如随机显示或整理备忘事项。备忘录应用程序...

    c++设计模式-行为型模式-备忘录模式

    c++设计模式-行为型模式-备忘录模式;qt工程;c++简单源码;备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先...

    设计模式之备忘录模式,内含可运行代码及详细解释

    备忘录模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在需要保护对象内部状态不被外部篡改的场景下。备忘录模式的核心思想是提供一种方法来捕获一个对象的内部状态,并在该对象之外保存这个状态...

    备忘录模式Demo

    备忘录模式是一种设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。这种模式常用于需要记录用户操作或者游戏进度等场景,允许...

Global site tag (gtag.js) - Google Analytics