博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
行为型模式之十一:备忘录模式
阅读量:6115 次
发布时间:2019-06-21

本文共 1280 字,大约阅读时间需要 4 分钟。

  hot3.png

在未来,时间旅行将被发明,备忘录是时间旅行的关键。基本上,他要做的是允许一个对象转换成状态。 在下面的例子,你可以时间旅行到你生命的任何时间,你可以重启去你以前去过的时代。

备忘录模式类图

备忘录模式Java代码

package designpatterns.memento;import java.util.List;import java.util.ArrayList;class Life {  private String time;   public void set(String time) {    System.out.println("Setting time to " + time);    this.time = time;  }   public Memento saveToMemento() {    System.out.println("Saving time to Memento");    return new Memento(time);  }   public void restoreFromMemento(Memento memento) {  	time = memento.getSavedTime();    System.out.println("Time restored from Memento: " + time);  }   public static class Memento {    private final String time;     public Memento(String timeToSave) {    	time = timeToSave;    }     public String getSavedTime() {      return time;    }  }} public class You {  public static void main(String[] args) {    List savedTimes = new ArrayList();     Life life = new Life();     //time travel and record the eras    life.set("2000 B.C.");    savedTimes.add(life.saveToMemento());    life.set("2000 A.D.");    savedTimes.add(life.saveToMemento());    life.set("3000 A.D.");    savedTimes.add(life.saveToMemento());    life.set("4000 A.D.");     life.restoreFromMemento(savedTimes.get(0));      }}

转载于:https://my.oschina.net/markho/blog/498250

你可能感兴趣的文章
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
vue实现点击展开,点击收起
查看>>
如何使frame能居中显示
查看>>
第k小数
查看>>
构建之法阅读笔记三
查看>>
Python/PHP 远程文件/图片 下载
查看>>
【原创】一文彻底搞懂安卓WebView白名单校验
查看>>
写给对前途迷茫的朋友:五句话定会改变你的人生
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
day6-if,while,for的快速掌握
查看>>
JavaWeb学习笔记(十四)--JSP语法
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>