1.至尊小宝

大家都看过大话西游之月光宝盒,月光宝盒可以去到五百年后的五岳山,也可以回到五百年前的五指山。但是,月光宝盒这样的宝物是怎么做到的呢?现在让两千年后的我们来创造它,完成千年前的仙履奇缘。

对于至尊小宝来说,要想回到过去和未来,首先要拥有一个可以记录人生每一天的月光宝盒。当曾经经历过,那么记录过去发生的一切,回到现在也记录当前的每一天,当需要“菠萝菠萝蜜”的时候,那么就时间倒转。

//月光宝盒

public interface MoonlightBox {

}

//至尊小宝

public class ZhiZunBao {

// 生活中某年的某一天

private String state;

// 通过月光宝盒记录当日时间

public MoonlightBox recordTime() {

MoonlightBox box = new MyMoonlightBox(this);

return box;

}

// 回到过去或未来的某一天

public void restoreTime(MoonlightBox box) {

MyMoonlightBox mybox = (MyMoonlightBox) box;

setState(mybox.state);

System.out.println("回到" + mybox.getState());

}

// 现在的某一天

public void setState(String state) {

this.state = state;

}

// 月光宝盒

private class MyMoonlightBox implements MoonlightBox {

// 宝盒中的某一天

private String state;

// 记录至尊宝的人生

public MyMoonlightBox(ZhiZunBao zhiZXB) {

this.state = zhiZXB.state;

}

// 回到过去的某一天

public String getState() {

return state;

}

}

}

2.大话西游

回到大话西游的世界,五百年前孙悟空被观音收服,月光宝盒记录这发生的一切。五百年后孙悟空托世为至尊小宝,经历人世间的悲欢离合,当上天再给一次机会,通过月光宝盒回到过去,力保唐三藏去西天取经,帮助人们摆脱人世间的苦难。

public class DaHuaXiYou {

public static void main(String[] args) {

// 至尊小宝

ZhiZunBao bao = new ZhiZunBao();

// 五百年前被观音收服

bao.setState("五百年前");

// 月光宝盒记录当时发生的一切

MoonlightBox box = (MoonlightBox) bao.recordTime();

// 五百年后至尊宝与白晶晶的故事

bao.setState("五百年后");

// 摆脱世俗回到五百年前保唐僧西天取经

bao.restoreTime(box);

}

}

java大话西游_Java设计模式_行为型_备忘录模式_大话西游之月光宝盒相关推荐

  1. Java设计模式之行为型:备忘录模式

    在开发过程中,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态.比如,在编程时假如编写失误,例如不小心误删除了几行代码,我们希望返回删除前的状态,便可以使用 Ctrl+Z 来进行返回,这时 ...

  2. 访问者模式的java语言_Java 设计模式系列(二三)访问者模式(Vistor)

    Java 设计模式系列(二三)访问者模式(Vistor) 访问者模式是对象的行为模式.访问者模式的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要修改的话,接受这个操作的数据结构则可以 ...

  3. Java设计模式之行为型:模板方法模式

    一.什么是模板方法模式: 模板方法是基于继承实现的,在抽象父类中声明一个模板方法,并在模板方法中定义算法的执行步骤(即算法骨架).在模板方法模式中,可以将子类共性的部分放在父类中实现,而特性的部分延迟 ...

  4. Java设计模式之创建型:原型模式

    一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...

  5. Java设计模式之行为型:解释器模式

    一.什么是解释器模式:         解释器模式,就是定义语言的文法,并建立一个解释器来解释该语言中的句子,通过构建解释器,解决某一频繁发生的特定类型问题实例. 这里我们将语言理解成使用规定格式和语 ...

  6. Java设计模式之行为型:策略模式

    一.背景: 在开发中经常遇到这种情况,实现某个功能有多种算法策略,我们可以根据不同环境或者条件选择不同的算法策略来完成该功能,比如查找.排序等,一种常用方式是硬编码在一个类中,如需要提供多种查找算法, ...

  7. Java设计模式之行为型:访问者模式

    背景: 去医院看病时,医生会给你一个处方单要你去拿药,拿药我们可以分为两步走: (1)去柜台交钱,划价人员会根据处方单上的药进行划价,交钱. (2)去药房拿药,药房工作者同样根据处方单给你相对应的药. ...

  8. Java设计模式之行为型:状态模式

    背景: 介绍状态模式前,我们先看这样一个实例:公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上.下图是他们系统的主要工作: 当第一眼看到这个系统时你就看出这是一个状态图,每个框都代表 ...

  9. Java设计模式之行为型:命令模式

    前言: 在开发中,我们可能需要向某些对象发送一些请求,但我们不知道请求的具体接收者是谁,也不知道被请求的操作是哪个,只知道在系统运行中指定具体的请求接收者即可,打个比方,电视遥控器,我们只需知道按哪个 ...

最新文章

  1. L1-003. 个位数统计
  2. 判断均匀平面波的极化形式_化学选修3丨分子极性如何判断?四步就能搞定!...
  3. 浅谈OCR之Tesseract
  4. python储存_python数据储存
  5. k2677场效应管参数引脚_共射极放大电路,场效应管放大电路,运算放大电路
  6. Linux(Ubuntu/CentOS)安装splunkforwarder步骤
  7. ffmpeg和opencv 播放视频文件和显示器
  8. CorelDRAWX4的VBA插件开发(二十六)深度转曲之包含容器内文字转曲
  9. 用python输出杨辉三角形,python输出杨辉三角
  10. 咸鱼ZTMR实例—PS2手柄控制板载LED
  11. Android录屏解决方案调研
  12. PHP8.0尝鲜系列(一):Windows 10安装PHP8.0
  13. 过QQ游戏大厅的SX保护 - Evil0r's Blog - 博客频道 - CSDN_NET
  14. R.Koo 改良后的分页类(主要是显示属性)
  15. SpringDataJPA学习笔记
  16. STM32469iDiscovery + LVGL 窗帘现象
  17. 2022年执法资格通用法律知识考试判断题专项训练题及答案
  18. 我和小米的10年,从米粉到米黑,再到米粉的故事...
  19. mysql安装 张宴_Linux_centos5 源码安装Nginx + mysql + apache + php的方法,主要依照的是张宴的一篇博文 - phpStudy...
  20. Oracle数据库的空间管理技巧

热门文章

  1. redisson版本_Redis客户端redisson实战
  2. 我10年来的学习和生活――应聘华为成功后的总结
  3. 华为一碰传常见异常问题及解决方案(超详细)
  4. vitis 自带ila调试
  5. Tryhackme-Pentesting Tools
  6. 程序员:上班第一天就让改bug!网友:攒一堆了,就等你了!
  7. 用css给小程序画个简单写轮眼
  8. 【职场必备知识】关于税收、纳税的若干问题记录
  9. 首次开放测试TCL QUHD让外界近距离接触量子点技术
  10. webgl函数 mix