备忘录模式
2014-11-12 17:27
197 查看
以下内容摘抄于《C#大话设计模式》
备忘录(Memento): 在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
备忘录模式的结构图如下:
Memento模式比较适用于功能比较复杂,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Memento信息还原到前一状态。
代码如下:
package com.schema.memento;
public class Memento {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
备忘录(Memento): 在不破坏封装性的前提下,捕获一个对象内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
备忘录模式的结构图如下:
Memento模式比较适用于功能比较复杂,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以根据保存的Memento信息还原到前一状态。
代码如下:
package com.schema.memento;
public class Memento {
private String state;
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
package com.schema.memento; public class Originator { public String state; public void SetMemento(Memento memento){ state = memento.getState(); } public Memento createMemento(){ Memento memento = new Memento(); memento.setState(state); return memento; } public void Show(){ System.out.println("State=" + state); } }
package com.schema.memento; public class Caretaker { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
package com.schema.memento; public class AppMain { public static void main(String[] args) { Originator originator = new Originator(); originator.state = "on"; originator.Show(); Caretaker caretaker = new Caretaker(); caretaker.setMemento(originator.createMemento()); originator.state = "off"; originator.Show(); originator.SetMemento(caretaker.getMemento()); originator.Show(); } }
相关文章推荐
- 备忘录模式
- 深入浅出备忘录模式
- [导入]C#面向对象设计模式纵横谈(21):(行为型模式) Memento 备忘录模式.zip(9.73 MB)
- 备忘录模式小议
- 设计模式学习笔记--Memento 备忘录模式
- DOTA版设计模式——备忘录
- 备忘录(Memento)模式
- 2009-05-14读书记录:《大话设计模式》第十八章——备忘录模式
- 备忘录模式
- 深入浅出Java设计模式之备忘录模式
- 设计模式之Memento(备忘录)
- 设计模式学习笔记(十七)—Memento备忘录模式
- 备忘录模式
- Java设计模式-----Memento备忘录模式
- Memento 备忘录模式
- 空间换时间,Memoization,单件模式,备忘录模式,之间的关系。
- Memento备忘录模式
- C#备忘录模式....
- Java备忘录模式
- 第18章 如果再回到从前--备忘录模式