JAVA-设计模式之备忘录模式
2013-08-14 13:49
585 查看
package caosc.javaModel.Memento; //发起者 public class Originator { private String status; public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public Memento createMemento(){ return new Memento(status); } public void cancelMemento(Memento me){ this.status = me.getStatus(); } }
package caosc.javaModel.Memento; public class Memento { private String status; public Memento(String status){ this.status = status; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } }
package caosc.javaModel.Memento; //管理者
public class CareTaker { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
package caosc.javaModel.Memento; public class MementoTest { /** * @param args */ public static void main(String[] args) { Originator og = new Originator();//发起者 og.setStatus("on"); System.out.println(og.getStatus()); CareTaker ct = new CareTaker(); ct.setMemento(og.createMemento());//隐藏Originator的细节实现 og.setStatus("off"); System.out.println(og.getStatus()); og.cancelMemento(ct.getMemento());//恢复原始状态 System.out.println(og.getStatus()); } }
何时使用备忘录模式:
1、备忘录模式比较适用功能比较复杂,需要维护或者记录属性历史的类,或者需要保存的属性是众多属性中的很小部分,Originator可以根据保存的Memento信息还原到前一状态
2、如果在程序的使用到命令模式的撤销功能,那么可以用备忘录模式存储可撤销操作的状态;
3、当角色的状态改变时,有可能这个状态无效,这个时候可以使用暂时存储的Memento将状态复原;
相关文章推荐
- java设计模式---备忘录模式
- Java设计模式之备忘录模式
- Java的设计模式-----备忘录模式
- java设计模式之---备忘录模式
- JAVA设计模式---备忘录模式
- java设计模式-备忘录模式
- 【java设计模式】备忘录模式
- JAVA备忘录之设计模式(02):观察者模式
- Java设计模式-----Memento备忘录模式
- Java设计模式之备忘录模式
- java设计模式---备忘录模式
- JAVA设计模式-18-备忘录模式
- Java23种设计模式——备忘录模式
- Java 设计模式之备忘录模式的详解(行为模式)
- Java设计模式20-备忘录模式
- java-设计模式(行为型)-【备忘录模式】
- java设计模式,备忘录模式
- JAVA设计模式之 备忘录模式【Memento Pattern】
- java设计模式---备忘录模式
- java设计模式--行为型模式--备忘录模式