* * * * * * * * * * * * * 3.5.6 备忘录模式与案例 备忘录模式(Memento):备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。 1. 备忘录模式结构 在应用开发中,很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,备忘录模式是一种给我们的软件提供后悔药的机制,通过它可以使系统恢复到某一特定的历史状态。 2. 备忘录模式案例分析 【例题3-5-6】有一个对象Employee,除了属性外还需要一个保存,还原状态的方法。使用一个对象Memento记录Employee每一个时刻的状态,Originator即为Employee记录状态,CareTaker用来保存,拿回Memento。 import java.util.Vector; class Memento{ String name; int age; public Memento(String name,int age){ = name; this.age = age; } } class Employee{ private String name; private int age; public Employee(String aName,int aAge){ name = aName; age = aAge; } public void setName(String aName){ name = aName; } public void setAge(int aAge){ age = aAge; } public Memento saveMemento(){ return new Memento(name,age); } public void restoreMemento(Memento memento){ age = memento.age; name = ; } public int getAge(){ return age; } public String getName(){ return name; } } class CareTaker{ private Vector v; private int current; public CareTaker(){ current = -1; v = new Vector(); } public void setMemento(Memento mem){ current ++; v.add(mem); } public Memento getMemento(){ if(current0){ current --; return(Memento) v.get(current); } return null; } } public class Client{ public static void show(Employee e){ System.out.println(-----------------------------------); System.out.println(Name:+e.getName()); System.out.println(Age: + e.getAge()); System.out.println(-----------------------------------); } public static void main(String[] args){ Employee e = new Employee(lili,25); CareTaker ct = new CareTaker(); show(e); ct.setMemento(e.saveMemento()); e.se
您可能关注的文档
最近下载
- 【基恩士】IG 系列 用户手册 (简体中文).pdf VIP
- 安徽财经大学《数值分析》2019-2020学年期末试卷.pdf VIP
- 《律师事务所退伙协议》.docx VIP
- SHS 01037—2019 球形储罐维护检修规程.docx VIP
- 文本教案半潜平台se23dec2012workshop binder.pdf VIP
- 《碳达峰碳中和政策法规汇编(2024年9月刊)》.pdf VIP
- 探索式软件测试方法在敏捷开发中的应用研究.docx VIP
- 中国行业标准 YY/T 1226-2022人乳头瘤病毒核酸(分型)检测试剂盒.pdf
- 延安市各区县地表水系图.pdf VIP
- 2025-2026学年一年级数学上册乐考非纸笔测试题(一)(人教版·新教材).docx VIP
原创力文档

文档评论(0)