未来,时间旅行真的可以实现。备忘录则是时间旅行的关键,因为它能够让一个物体还原到以前的状态。
在下面的例子中,你可以通过时间旅行到你人生的任何时间点,你也可以还原到你曾经到经历过的任何时间点。
1、备忘录模式类图
2、备忘录模式实例代码
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<Life.Memento> savedTimes = new ArrayList<Life.Memento>();
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));
}
}