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

来源:互联网 发布:手机淘宝尺码怎么设置 编辑:程序博客网 时间:2024/06/11 07:51

转载请注明出处:http://blog.csdn.net/ljmingcom304/article/details/50434443
本文出自:【梁敬明的博客】

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);    }}
0 0
原创粉丝点击