[译]Java 设计模式之备忘录
2015-01-10 10:52
453 查看
(文章翻译来自Java Design Pattern: Memento)
memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.
在将来时空旅行将成为显示。而备忘录将使时空旅行的关键。主要的讲,它是怎么使一个对象对到它以前的一个状态呢。
在下面的例子中,你可以你可以通过时空旅行回到你的任何一个年代,而且你可以恢复你以前去过的某一个年代。
备忘录设计模式类图
备忘录设计模式Java代码
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)); } }
相关文章推荐
- 深入浅出Java设计模式之备忘录模式
- java设计模式---备忘录模式
- Java设计模式之从[暗黑破坏神存档点]分析备忘录(Memento)模式
- JAVA -备忘录设计模式
- Java设计模式之备忘录模式
- Java设计模式-----Memento备忘录模式
- java设计模式_备忘录模式
- java设计模式-备忘录模式
- Java设计模式菜鸟系列(十九)备忘录模式建模与实现
- Java设计模式之备忘录模式
- java设计模式之备忘录模式
- java设计模式(行为型)之备忘录模式
- java设计模式---备忘录模式
- java-设计模式(行为型)-【备忘录模式】
- Java设计模式-----Memento备忘录模式
- java设计模式---备忘录模式
- JAVA设计模式-备忘录模式-Memento-游戏备份存档
- Java设计模式:备忘录模式
- 【java设计模式】备忘录模式
- Java设计模式之备忘录模式