`

Memento 备忘录 行为模式

阅读更多

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

 


 

参与者:

   Memento(备忘录)

      - 备忘录存储原发器对象的内部状态。原发器根据需要决定备忘录存储原发器的那些内部状态。

      -防止原发器以外的其他对象访问备忘录。备忘录实际上有两个接口,管理者只能看到备忘录的窄接口。他只能将备忘录传递给其他对象。相反,原发器能看到一个宽的接口,允许她访问返回到先前状态所需的所有数据。理想的情况是只允许生成备忘录的那个原发器访问本备忘录的 内部状态。

 

Orginator (原发器),原发器创建一个备忘录,用以记录当前时刻的她的内部状态。使用备忘录恢复内部状态。

 

Caretaker (负责人),负责保存好备忘录,不能对备忘录的内容进行操作或检查。

 

 

Memento 备忘录在《ActionScript 3 设计模式》里面有讲,也有很多的例子。

首先定义一个备忘录类,用来存储 游戏网络个的状态

 

GamePieceMemento.as

package {
    public class GamePieceMemento {
        private var _count:uint;
        private var _owner:Gamplayer;
        
        public function get count():uint {
            return _count;
        }
        
        public function get owner():Gamplayer {
            return owner;
        }
        
        public function GamePieceMemento(count:uint,owner:Gamplayer) {
            _count = count;
            _owner = owner;
        }
    }
}

   创建原发器,在Proximity游戏中,我们要存储PieceData对象的备忘录因此,我们添加getMemento() 和 setMemento()方法,将PieceData类设计为一个原发器。

 

 

PieceData.as

package {
    public class PieceData  extends EventDispatcher {

        public function PieceData() {

        }
        
        public function getMemento():GamePieceMemento {
            retturn new GamePieceMemento(count,owner);
        }
        
        public function setMemento(memento:GamePieceMemento):void {
            count = memento.count;
            owner = memento.owner;
            
            dispatchEvent(new Event(Event.CHANGE));
        }
        
    }
}

 

 

 

 

 

 

 

 

 

  • 大小: 39.8 KB
分享到:
评论

相关推荐

    C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式

    备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到先前的状态。这种模式在需要撤销/重做功能、...

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

    C#面向对象设计模式 (行为型模式) Memento 备忘录模式 视频讲座下载

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

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

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

    备忘录模式(Memento Pattern)是设计模式中的一种行为模式,主要目的是在不违反封装原则的情况下,保存一个对象的内部状态,以便在需要时能够恢复到先前的状态。这种模式通常用于实现撤销/重做功能或者在游戏中保存...

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

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

    设计模式之备忘录(memento)

    备忘录(Memento)模式是一种行为设计模式,它在不破坏封装性的前提下,捕获一个对象的内部状态,并允许该对象在以后恢复到这个状态。这种模式常用于需要保存和恢复对象状态的情景,例如撤销/重做功能、游戏存档或...

    设计模式之备忘录模式

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

    C#备忘录模式 代码例子

    备忘录模式是一种设计模式,它在不破坏封装性的前提下,保存对象的内部状态,以便在需要的时候恢复。在C#中,备忘录模式常用于实现撤销/重做功能,或者在需要记录和恢复对象状态的情况下。下面将详细解释备忘录模式...

    备忘录模式实现及案例

    备忘录模式是一种设计模式,属于行为模式类型,它的主要作用是保存对象的状态,以便在需要的时候能够恢复到之前的状态。这种模式的核心在于提供一种方式,可以在不破坏封装的前提下,捕获并存储一个对象的内部状态,...

    C++设计模式课件19_Memento_备忘录.pdf

    备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。在C++中实现备忘录模式通常涉及以下几个角色: 1. 发起人(Originator):创建一个备忘录,用以...

    Java设计模式-备忘录

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

    备忘录模式 C++ 实现

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获和恢复一个对象的内部状态。在C++中实现备忘录模式,可以有效地帮助开发者在程序运行过程中保存对象的状态,以便在需要时恢复到之前的状态,这...

    备忘录模式笔记1

    备忘录模式是一种行为型设计模式,它允许对象在不暴露其内部状态的情况下保存和恢复状态。这种模式通常用于需要保存和恢复对象状态的情况,例如游戏存档、Undo/Redo 操作等。 备忘录模式的组成 备忘录模式主要由三...

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

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

    备忘录模式t31

    备忘录模式是一种设计模式,属于行为模式类型,它的主要目的是在不破坏对象封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象到先前的状态。这种模式通常用于实现撤销/重做...

    设计模式_行为型_备忘录模式.md

    备忘录模式(Memento)是一种行为型设计模式,它允许在不暴露对象的实现细节的情况下,捕获并保存对象的内部状态,从而可以在未来某个时刻恢复到之前的状态。备忘录模式特别适用于实现撤销操作,或是需要进行状态...

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

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

    备忘录模式-极客学院-java-课件代码

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

    [行为型模式] 备忘录模式的理解

    备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下,捕获和恢复对象的状态。这种模式常用于需要记录对象当前状态以便稍后恢复的情况,例如撤销/重做功能、游戏存档或者复杂表单的数据保存。 在备忘录...

Global site tag (gtag.js) - Google Analytics