`

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 备忘录模式

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

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

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

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

    备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 备忘录模式java demo

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

    备忘录(Memento)模式又叫作快照(Snapshot)模式或Token模式,是一种对象的行为模式。在备忘录模式里,一个备忘录是一个对象,它存储另一个对象(备忘录的原发器)在某个瞬间的内部状态。备忘的目的就是为了以后在需要...

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

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

    备忘录模式

    备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。

    设计模式——备忘录模式的学习与理解

    备忘录模式( Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式属于行为型模式。 通俗的讲,备忘录故名思意...

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式 C#面向对象设计模式纵横谈(22):(行为型模式) State 状态模式 C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式 C#面向对象设计...

    23种java版设计模式源码案例.zip

    23种java版设计模式源码案例.zip 0.目录 创建型模式(creational) ...备忘录模式(memento) 观察者模式(observer) 状态模式(state) 空对象模式(null object) 策略模式(strategy) 模板模式(template) 访问者模式(visitor)

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含...备忘录模式(Memento) 观察者模式(Observer) 状态模式(State) 策略模式(Strategy) 模板方法模式(Template Method) 访问者模式(Visitor)

    设计模式之11个行为型模式

    行为型简介职责链模式(ChainofResponsibility)命令模式(Command)解释器模式(Interpreter)迭代器模式(Iterator)中介者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板...

    23种设计模式 (创建型,结构型,行为型)

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) ... 备忘录模式(Memento Pattern) 21. 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    01-制造工具的工厂模式(1).html

    在书中,作者们将这二十三种设计...备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( Interpreter ) 书中通过一幅图,剖析了这二十三种设计模式的关系。

    09-通过容器实现的外观模式(2).html

    在书中,作者们将这二十三种设计...备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( Interpreter ) 书中通过一幅图,剖析了这二十三种设计模式的关系。

    00-初探 Laravel 和其中的设计模式(3).html

    在书中,作者们将这二十三种设计...备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( Interpreter ) 书中通过一幅图,剖析了这二十三种设计模式的关系。

    12-附录 1 设计模式的七大原则(1).html

    在书中,作者们将这二十三种设计...备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( Interpreter ) 书中通过一幅图,剖析了这二十三种设计模式的关系。

    C#设计模式_设计模式_C#_

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3.... 备忘录模式(Memento Pattern) 21. 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    用Java实现23种设计模式

    备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式...

Global site tag (gtag.js) - Google Analytics