打字猴:1.700470954e+09
1700470954
1700470955 this.originator=originator;
1700470956
1700470957 }
1700470958
1700470959 }
1700470960
1700470961 没什么太大变化,只是备忘录角色转换成了发起人角色,还是一个简单的JavaBean。我们来想想这种模式是不是还可以简化?要管理员角色干什么?就是为了管理备忘录角色,现在连备忘录角色都被合并了,还留着它干吗?我们想办法把它也精简掉,如代码清单24-14所示。
1700470962
1700470963 代码清单24-14 发起人自主备份和恢复
1700470964
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 //克隆当前对象
[ 上一页 ]  [ :1.700470954e+09 ]  [ 下一页 ]