您的位置:首页 > 编程语言 > Java开发

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

2015-01-10 10:52 453 查看
(文章翻译来自Java Design Pattern: Memento

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

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

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

备忘录设计模式类图



备忘录设计模式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));

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: