首页 > 代码库 > [设计模式-行为型]备忘录模式(Memento)
[设计模式-行为型]备忘录模式(Memento)
一句话
让某个对象可以取到之前的某个状态值。
概括
解析
MEMENTO—同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。
备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。
实例
这个实例就以状态值为实例。
一个备忘的类, 里面维护一个状态的属性(Memento.java)
一个维护这个状态类的类(Caretaker.java)
一个原始的类(Originator.java)
测试类(TestMain.java)
/** * @author oscar999 * @date 2015-1-7 * @version V1.0 */ package designptn.memento; public class Memento { private String state; public Memento(String state) { this.state = state; } public String getState() { return state; } public void setState(String state) { this.state = state; } }
/** * @author oscar999 * @date 2015-1-7 * @version V1.0 */ package designptn.memento; /** * @author Administrator * */ public class Caretaker { private Memento memento; public Memento getMemento() { return memento; } public void setMemento(Memento memento) { this.memento = memento; } }
/** * @author oscar999 * @date 2015-1-7 * @version V1.0 */ package designptn.memento; public class Originator { private String state; public String getState() { return state; } public void setState(String state) { this.state = state; } public Memento creteMemento() { return new Memento(state); } public void setMemento(Memento memento) { state = memento.getState(); } public void showState() { System.out.println(state); } }
/** * @author oscar999 * @date 2015-1-7 * @version V1.0 */ package designptn.memento; public class TestMain { public static void main(String[] args) { // TODO Auto-generated method stub Originator org = new Originator(); org.setState("State 1"); Caretaker ctk = new Caretaker(); ctk.setMemento(org.creteMemento()); org.setState("State 2"); org.showState(); org.setMemento(ctk.getMemento()); org.showState(); } }
[设计模式-行为型]备忘录模式(Memento)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。