打字猴:1.700471404e+09
1700471404 private HashMap<String,Memento>memMap=new HashMap<String,Memento>();
1700471405
1700471406 public Memento getMemento(String idx){
1700471407
1700471408 return memMap.get(idx);
1700471409
1700471410 }
1700471411
1700471412 public void setMemento(String idx,Memento memento){
1700471413
1700471414 this.memMap.put(idx,memento);
1700471415
1700471416 }
1700471417
1700471418 }
1700471419
1700471420 把容纳备忘录的容器修改为Map类型就可以了,场景类也稍做改动,如代码清单24-21所示。
1700471421
1700471422 代码清单24-21 场景类
1700471423
1700471424 public class Client{
1700471425
1700471426 public static void main(String[]args){
1700471427
1700471428 //定义出发起人
1700471429
1700471430 Originator originator=new Originator();
1700471431
1700471432 //定义出备忘录管理员
1700471433
1700471434 Caretaker caretaker=new Caretaker();
1700471435
1700471436 //创建两个备忘录
1700471437
1700471438 caretaker.setMemento(“001”,originator.createMemento());
1700471439
1700471440 caretaker.setMemento(“002”,originator.createMemento());
1700471441
1700471442 //恢复一个指定标记的备忘录
1700471443
1700471444 originator.restoreMemento(caretaker.getMemento(“001”));
1700471445
1700471446 }
1700471447
1700471448 }
1700471449
1700471450 注意 内存溢出问题,该备份一旦产生就装入内存,没有任何销毁的意向,这是非常危险的。因此,在系统设计时,要严格限定备忘录的创建,建议增加Map的上限,否则系统很容易产生内存溢出情况。
1700471451
1700471452
1700471453
[ 上一页 ]  [ :1.700471404e+09 ]  [ 下一页 ]