1700470877
从类图上看,发起人角色融合了发起人角色和备忘录角色,具有双重功效,如代码清单24-12所示。
1700470878
1700470879
代码清单24-12 融合备忘录的发起人角色
1700470880
1700470881
public class Originator implements Cloneable{
1700470882
1700470883
//内部状态
1700470884
1700470885
private String state=””;
1700470886
1700470887
public String getState(){
1700470888
1700470889
return state;
1700470890
1700470891
}
1700470892
1700470893
public void setState(String state){
1700470894
1700470895
this.state=state;
1700470896
1700470897
}
1700470898
1700470899
//创建一个备忘录
1700470900
1700470901
public Originator createMemento(){
1700470902
1700470903
return this.clone();
1700470904
1700470905
}
1700470906
1700470907
//恢复一个备忘录
1700470908
1700470909
public void restoreMemento(Originator_originator){
1700470910
1700470911
this.setState(_originator.getState());
1700470912
1700470913
}
1700470914
1700470915
//克隆当前对象
1700470916
1700470917
@Override
1700470918
1700470919
protected Originator clone(){
1700470920
1700470921
try{
1700470922
1700470923
return(Originator)super.clone();
1700470924
1700470925
}catch(CloneNotSupportedException e){
1700470926
[
上一页 ]
[ :1.700470877e+09 ]
[
下一页 ]