1700471084
下面我们来讲解一个对象全状态备份方案,它有多种处理方式,比如使用Clone的方式就可以解决,使用数据技术也可以解决(DTO回写到临时表中)等,我们要讲的方案就对备忘录模式继续扩展一下,实现一个JavaBean对象的所有状态的备份和还原,如图24-6所示。
1700471085
1700471086
1700471087
1700471088
1700471089
图24-6 多状态的备忘录模式
1700471090
1700471091
还是比较简单的类图,增加了一个BeanUtils类,其中backupProp是把发起人的所有属性值转换到HashMap中,方便备忘录角色存储;restoreProp方法则是把HashMap中的值返回到发起人角色中。可能各位要说了,为什么要使用HashMap,直接使用Originator对象的拷贝不是一个很好的方法吗?可以这样做,你就破坏了发起人的通用性,你在做恢复动作的时候需要对该对象进行多次赋值操作,也容易产生错误。我们先来看发起人角色,如代码清单24-16所示。
1700471092
1700471093
代码清单24-16 发起人角色
1700471094
1700471095
public class Originator{
1700471096
1700471097
//内部状态
1700471098
1700471099
private String state1=””;
1700471100
1700471101
private String state2=””;
1700471102
1700471103
private String state3=””;
1700471104
1700471105
public String getState1(){
1700471106
1700471107
return state1;
1700471108
1700471109
}
1700471110
1700471111
public void setState1(String state1){
1700471112
1700471113
this.state1=state1;
1700471114
1700471115
}
1700471116
1700471117
public String getState2(){
1700471118
1700471119
return state2;
1700471120
1700471121
}
1700471122
1700471123
public void setState2(String state2){
1700471124
1700471125
this.state2=state2;
1700471126
1700471127
}
1700471128
1700471129
public String getState3(){
1700471130
1700471131
return state3;
1700471132
1700471133
}
[
上一页 ]
[ :1.700471084e+09 ]
[
下一页 ]