`
huhu_long
  • 浏览: 72372 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

备忘录模式

阅读更多
备忘录模式有叫备份模式, 相信这个概念很好理解。 大家都玩过游戏, 杀过怪, 升过级。。。 在被Boss杀死之后只需要恢复到死之前的那一关就可以了。

那我们来看看是怎样实现的

先看看这个游戏, 游戏可以存档和恢复
public class Game {
	private String level;

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public IArchive createArchive() {
		return new Archive(this.level);
	}

	public void restoreArchive(IArchive archive) {
		this.level = ((Archive) archive).getLevel();
	}
}



再定义这个“档”
// 空接口
public interface IArchive {
}

// 简单实现, 仅包含游戏级别的信息
public class Archive implements IArchive {

	private String level;

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public Archive(String level) {
		this.level = level;
	}
}


定义好了“档”, 还需要一个存档器 - ArchiveManager
public class ArchiveManager {
	private Map<String, IArchive> archiveList = new HashMap<String, IArchive>();

	public void put(String name, IArchive archive) {
		this.archiveList.put(name, archive);
	}

	public IArchive get(String name) {
		return archiveList.get(name);
	}
}


同样很简单, 就是一个Map

都好了就看看客户端代码吧:
public class Client {
	public static void main(String[] args) {
		Game game = new Game();
		game.setLevel("60级");
		System.out.println("游戏开始了, 一切很顺利, 升到60级了");

		game.setLevel("0级");
		System.out.println("被大Boss打死了,重新开始。 完了, 没有备份, 哭都哭不出来。。。");

		System.out.println("没办法, 重新从0级开始");
		game.setLevel("1级");
		System.out.println("吸取教训, 每升一级就备份一下");
		ArchiveManager archiveManager = new ArchiveManager();
		archiveManager.put("1级", new Archive(game.getLevel()));

		System.out.println("继续打怪。。。");

		System.out.println("一不小心分神了, 竟然被两级的怪打死了。。。");
		System.out.println("还好有备份,恢复一下就好");
		game.setLevel(((Archive) archiveManager.get("1级")).getLevel());

		System.out.println("游戏恢复到了" + game.getLevel());
	}
}


是不是很简单明了:
引用
游戏开始了, 一切很顺利, 升到60级了
被大Boss打死了,重新开始。 完了, 没有备份, 哭都哭不出来。。。
没办法, 重新从0级开始
吸取教训, 每升一级就备份一下
继续打怪。。。
一不小心分神了, 竟然被两级的怪打死了。。。
还好有备份,恢复一下就好
游戏恢复到了1级

分享到:
评论

相关推荐

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

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

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

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

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

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

    设计模式之备忘录模式

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

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

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

    备忘录模式Demo

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

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

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

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

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

    C#备忘录模式 代码例子

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

    备忘录模式实现及案例

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

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

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

    设计模式之备忘录模式的Java版本实现

    备忘录模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是为了保存对象的状态,以便在需要的时候能够恢复到之前的状态。备忘录模式的核心思想是通过创建一个备忘录对象来存储原对象的状态,这个备忘录...

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

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

    备忘录模式 C++ 实现

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

    备忘录模式笔记1

    备忘录模式笔记 备忘录模式(Memento)是一种非常有用的设计模式,它主要用于保存一个对象的某个状态,以便在适当的时候恢复对象。下面我们将对备忘录模式进行详细的解释和分析。 备忘录模式的定义 备忘录模式是...

    备忘录模式代码示例

    备忘录模式是一种设计模式,它允许对象在不破坏封装性的前提下,捕获和存储其内部状态,以便在需要时能恢复到该状态。这种模式在需要保存和恢复对象状态,而又不想对外部世界暴露其内部实现细节时非常有用。备忘录...

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

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

    备忘录模式t31

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

    14备忘录模式1

    备忘录模式是一种设计模式,它允许我们保存和恢复对象的内部状态,而无需暴露对象的实现细节。这种模式在需要记录和恢复对象状态的情况下非常有用,比如在游戏中保存进度、在文档编辑器中撤销操作或者在复杂计算过程...

    iOS 设计模式 备忘录模式

    备忘录模式是设计模式中的一种,它主要用于保存对象的状态,以便在未来恢复到该状态。这个模式尤其适用于需要撤销/重做功能的场景。 备忘录模式的核心思想是创建一个备忘录对象,该对象存储另一个对象的内部状态,...

Global site tag (gtag.js) - Google Analytics