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

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);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值