设计模式-备忘录模式-java-中文版
码上见分晓!
中文版本的设计模式详解,案例中的代码尽量使用了中文.
以游戏和生活中较好理解的场景讲解设计模式的实际用法,便于理解吸收,让设计模式的学习不再困难!!!
更多设计模式欢迎来到我的开源项目设计模式中文版
https://gitee.com/nightrunner/chinese-version-of-design-patterns
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Scanner;/*** 备忘录模式可以实现存档*/
public class 备忘录模式主程序 {public static void main(String[] args) {List<存档> 存档集合 = new ArrayList<>();恶魔猎手 恶魔猎手 = new 恶魔猎手("伊利丹");恶魔猎手.显示状态();存档集合.add(恶魔猎手.获取存档());恶魔猎手.当前地点 = "暴风城";恶魔猎手.血量 = 10;恶魔猎手.蓝量 = 0;恶魔猎手.显示状态();存档集合.add(恶魔猎手.获取存档());恶魔猎手.血量 = 0;恶魔猎手.蓝量 = 0;恶魔猎手.显示状态();int 存档下标 = -1;do {Scanner sc = new Scanner(System.in);for (int i = 0; i < 存档集合.size(); i++) {System.out.println(i + ":" + 存档集合.get(i).摘要);}System.out.print("请输入要恢复存档的数字:");int 下标 = 存档下标 = sc.nextInt();if (下标 < 0 || 下标 > (存档集合.size() - 1)) {System.out.println("输入错误,请重新输入");} else {break;}} while (true);恶魔猎手.恢复存档(存档集合.get(存档下标));恶魔猎手.显示状态();}
}interface 角色 {存档 获取存档();void 恢复存档(存档 存档);void 显示状态();
}abstract class 角色默认抽象实现 implements 角色 {String 当前地点 = "玛顿";Integer 血量 = 200;Integer 蓝量 = 300;final String 姓名;public 角色默认抽象实现(String 姓名) {this.姓名 = 姓名;}@Overridepublic 存档 获取存档() {存档 存档 = new 存档();存档.地点 = 当前地点;存档.血量 = 血量;存档.蓝量 = 蓝量;存档.时间 = new Date();存档.摘要 = this.toString();System.out.println(this.getClass().getSimpleName() + "保存存档:" + 存档);return 存档;}public void 恢复存档(存档 存档) {this.血量 = 存档.血量;this.蓝量 = 存档.蓝量;this.当前地点 = 存档.地点;System.out.println(this.getClass().getSimpleName() + "恢复存档:" + 存档);}@Overridepublic String toString() {return this.getClass().getSimpleName() + ":" + 姓名 + "{" +"当前地点=" + 当前地点 +", 血量=" + 血量 +", 蓝量=" + 蓝量 +'}';}@Overridepublic void 显示状态() {if (血量 < 1) {System.out.println(this.getClass().getSimpleName() + ":" + 姓名 + "挂了");} else {System.out.println(this);}}
}class 恶魔猎手 extends 角色默认抽象实现 {public 恶魔猎手(String 昵称) {super(昵称);}
}interface 备忘录 {}class 存档 implements 备忘录 {public 存档() {}Date 时间;String 摘要;String 地点;Integer 血量;Integer 蓝量;@Overridepublic String toString() {return "存档{" +"时间=" + 时间 +", 摘要='" + 摘要 + '\'' +", 地点=" + 地点 +", 血量=" + 血量 +", 蓝量=" + 蓝量 +'}';}
}
设计模式-备忘录模式-java-中文版相关推荐
- Java设计模式(备忘录模式-解释器模式-状态模式-策略模式-职责链模式)
Java设计模式Ⅶ 1.备忘录模式 1.1 备忘录模式概述 1.2 代码理解 2.解释器模式 2.1 解释器模式概述 3.状态模式 3.1 状态模式概述 3.2 代码理解 4.策略模式 4.1 策略模 ...
- Java设计模式——备忘录模式
Java设计模式--备忘录模式 需求 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状 ...
- java实现备忘录模式_设计模式之第17章-备忘录模式(Java实现)
设计模式之第17章-备忘录模式(Java实现) 好男人就是我,我就是曾小贤.最近陈赫和张子萱事件闹得那是一个沸沸扬扬.想想曾经每年都有爱情公寓陪伴的我现如今过年没有了爱情公寓总是感觉缺少点什么.不知道 ...
- 设计模式-备忘录模式(Memento)-Java
设计模式-备忘录模式(Memento)-Java 目录 文章目录 1.前言 2.示例案例-可悔棋的中国象棋 3.备忘录模式概述 3.1.备忘录模式定义 3.2.备忘录模式结构 3.3.备忘录模式结构图 ...
- Python设计模式-备忘录模式
Python设计模式-备忘录模式 代码基于3.5.2,代码如下; #coding:utf-8 #备忘录模式 import randomclass gameCharacter():vitality = ...
- Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式
Java 设计模式 --- Template 模式 Java Template 模式 Java 模板设计模式 一.概述 模板设计模式: 父类定义通用抽象的功能方法,子类负责具体的实现. 本文将以一个通 ...
- C++设计模式——备忘录模式(memento pattern)
博主看了许多文章和一些书,发现要么代码不全,要么对备忘录的理解有偏差,要么干脆根本就不是备忘录模式,经过博主查阅十余篇文章和详细研究书本备忘录模式,总结出这篇精华的c++备忘录模式文章,感兴趣的朋友可 ...
- java设计模式---备忘录模式
一.引子 俗话说:世上难买后悔药.所以凡事讲究个"三思而后行",但总常见有人做"痛心疾首"状:当初我要是--.如果真的有<大话西游>中能时光倒流的& ...
- java之备忘录模式,java设计模式之备忘录模式
java设计模式之备忘录模式 代码无错便是优? 简介: 在不破坏封装性的前提下 , 捕获一个对象的内部状态,并在该对象之外保存这个状态 , 这样以后就可以将该对象恢复到原先保存的状态 . 备忘录模式就 ...
- Java设计模式--备忘录模式
游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大 战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态 传统方案解决游戏 ...
最新文章
- sqlite的速度_内存不够用还要速度快,终于找到可以基于 File 的 Cache 了
- 智源论坛报名丨斯坦福大学马腾宇博士:为深度模型设计显示正则器
- python官网下载步骤linux-Linux 安装python3.x步骤
- OVER(PARTITION BY)函数用法
- 算法练习day3——190320(对数器、归并排序)
- php去掉数字前的符号,php导出excel如何处理使得表格数字值前面的0不被去掉
- 7-20 打印九九口诀表 (15 分)
- ADI芯片的通用SPI接口设计
- CarMaker快速入门第三课创建车辆动力学仿真
- tensorflow with求导_Tensorflow 是如何求导的?
- Python如何配置清华镜像源
- 仅以此篇纪念负数取模
- dedecms 织梦后台系统配置参数空白的解决方法
- 男人就应该对自己狠一点
- 2018十大最热门编程语言排行榜出炉,Java竟不是第一!
- 病毒不可怕,就怕流氓有文化
- 独家 | 合成资产平台Synthetix:鲜为人知,却身处DeFi中心
- Shotcut for Mac(视频编辑器)
- 标准曲线制作、jiance检验、使用知识大全
- 人间不值得:我们一起走过的2018