1700470965
public class Originator implements Cloneable{
1700470966
1700470967
private Originator backup;
1700470968
1700470969
//内部状态
1700470970
1700470971
private String state=””;
1700470972
1700470973
public String getState(){
1700470974
1700470975
return state;
1700470976
1700470977
}
1700470978
1700470979
public void setState(String state){
1700470980
1700470981
this.state=state;
1700470982
1700470983
}
1700470984
1700470985
//创建一个备忘录
1700470986
1700470987
public void createMemento(){
1700470988
1700470989
this.backup=this.clone();
1700470990
1700470991
}
1700470992
1700470993
//恢复一个备忘录
1700470994
1700470995
public void restoreMemento(){
1700470996
1700470997
//在进行恢复前应该进行断言,防止空指针
1700470998
1700470999
this.setState(this.backup.getState());
1700471000
1700471001
}
1700471002
1700471003
//克隆当前对象
1700471004
1700471005
@Override
1700471006
1700471007
protected Originator clone(){
1700471008
1700471009
try{
1700471010
1700471011
return(Originator)super.clone();
1700471012
1700471013
}catch(CloneNotSupportedException e){
1700471014
[
上一页 ]
[ :1.700470965e+09 ]
[
下一页 ]