[译]Java 设计模式之备忘录

(文章翻译来自Java Design Pattern: Memento

memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.

在将来时空旅行将成为显示。而备忘录将使时空旅行的关键。主要的讲,它是怎么使一个对象对到它以前的一个状态呢。

在下面的例子中,你可以你可以通过时空旅行回到你的任何一个年代,而且你可以恢复你以前去过的某一个年代。

备忘录设计模式类图

[译]Java 设计模式之备忘录

备忘录设计模式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<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)); }
}
上一篇:android - 调试


下一篇:ElasticSearch-6.2安装head插件