`

行为模式--备忘录模式

 
阅读更多

一)类图

二)Java代码

Shape代表一个图形,简单起见,在例子中,图形只有简单的(x,y)坐标信息。方法moveto的每次调用将改变shape对象的状态。在备忘录模式中,Shape相当于Originstor,需要记录某个时刻的状态,方法createMemento负责将Shape某个时刻的状态保存成一个备忘录对象,方法removeMemento从一个备忘录对象中恢复Shape的状态。对于Shape来说,它是备忘录对象的使用者,它看到备忘录对象的宽接口Memento,可以直接操控备忘录对象的内部属性,用于恢复Shape对象,代码如下:

Code:
  1. packagetestIBM;
  2. publicclassShape{
  3. privateintx;
  4. privateinty;
  5. publicShape(intx,inty){
  6. this.x=x;
  7. this.y=y;
  8. }
  9. publicMementocreateMemento(){
  10. returnnewMemento(x,y);
  11. }
  12. publicvoidrestoreMemento(Mementomemento){
  13. x=memento.getX();
  14. y=memento.getY();
  15. }
  16. publicStringgetPosition(){
  17. return"("+x+","+y+")";
  18. }
  19. publicvoidmoveTo(intx,inty){
  20. this.x=x;
  21. this.y=y;
  22. }
  23. }
Code:
  1. packagetestIBM;
  2. publicinterfaceMementoIF{
  3. }
Code:
  1. packagetestIBM;
  2. //这个是备忘录
  3. publicclassMementoimplementsMementoIF{
  4. privateintx;
  5. privateinty;
  6. publicMemento(intx,inty){
  7. this.x=x;
  8. this.y=y;
  9. }
  10. publicintgetX(){
  11. returnx;
  12. }
  13. publicintgetY(){
  14. returny;
  15. }
  16. }
Code:
  1. packagetestIBM;
  2. publicclassCareTaker{
  3. privateMementoIFmemento;
  4. publicMementoIFgetMemento(){
  5. returnmemento;
  6. }
  7. publicvoidsaveMemento(MementoIFmemento){
  8. this.memento=memento;
  9. }
  10. }

Client演示了如何使用备忘录进行状态保存和恢复。代码如下:

Code:
  1. packagetestIBM;
  2. publicclassTestIt{
  3. publicstaticvoidmain(String[]args){
  4. Shapeshape=newShape(0,0);
  5. CareTakercareTaker=newCareTaker();
  6. shape.moveTo(22,24);
  7. careTaker.saveMemento(shape.createMemento());
  8. System.out.println("保存shape状态对象。当前位置是"+shape.getPosition());
  9. shape.moveTo(33,44);
  10. System.out.println("移到新位置"+shape.getPosition());
  11. shape.restoreMemento((Memento)careTaker.getMemento());
  12. System.out.println("恢复"+shape.getPosition());
  13. }
  14. }
分享到:
评论

相关推荐

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

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

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

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

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

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

    Java设计模式-备忘录

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

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

    在"备忘录模式-极客学院-java-课件代码"这个压缩包中,我们可以期待找到相关的Java代码示例,这些示例可能包括发起人、备忘录和管理者类的实现,以及如何在实际场景中运用备忘录模式的示例。通过学习这些代码,...

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

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

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

    - **备忘录模式-类图**:可能展示了备忘录模式中各个类的结构和它们之间的关系,如继承、关联等,帮助深入理解每个角色的职责。 - **备忘录模式-概念图.jpg/pdf**:可能为不同格式的同一种图,提供多种查看方式,...

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

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

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

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

    设计模式之备忘录模式

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

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

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

    3 备忘录模式-课程内容.rar

    在3 备忘录模式-MOOC课程内容.pdf中,可能包含以下内容: 1. 模式的概念与定义:解释备忘录模式的基本思想和应用场景。 2. 模式结构:详细介绍备忘录模式中的三个角色及其职责。 3. 模式实现:通过代码示例展示如何...

    3 备忘录模式-MOOC课程内容.pdf

    备忘录模式是一种行为型设计模式,用于捕获和存储一个对象的内部状态,以便于之后能够将对象恢复到这个状态。在软件体系结构中,备忘录模式特别适用于需要实现“撤销”功能或“回滚”操作的场景,如文本编辑器中的...

    设计模式之备忘录(memento)

    备忘录模式主要涉及三个角色: 1. **发起人(Originator)**:需要保存其内部状态的对象。它创建并存储备忘录,也可以从备忘录恢复状态。 2. **备忘录(Memento)**:存储发起人的内部状态。备忘录是发起人的私有...

    C#备忘录模式 代码例子

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

    备忘录模式实现及案例

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

    备忘录模式t31

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

    23种设计模式之备忘录模式

    备忘录模式是一种行为设计模式,它允许在不破坏对象封装性的前提下,保存和恢复对象的状态。在软件开发中,这种模式常用于实现撤销/重做功能或者在需要保存临时状态的情况下。以下是对备忘录模式的详细解释: 1. **...

    备忘录模式 C++ 实现

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

Global site tag (gtag.js) - Google Analytics