打字猴:1.700470865e+09
1700470865 设计模式之禅 [:1700454034]
1700470866 设计模式之禅 24.4 备忘录模式的扩展
1700470867
1700470868 24.4.1 clone方式的备忘录
1700470869
1700470870 大家还记得在第13章中讲的原型模式吗?我们可以通过复制的方式产生一个对象的内部状态,这是一个很好的办法,发起人角色只要实现Cloneable就成,比较简单,我们来看类图,如图24-5所示。
1700470871
1700470872
1700470873
1700470874
1700470875 图24-5 Clone方式的备忘录
1700470876
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
[ 上一页 ]  [ :1.700470865e+09 ]  [ 下一页 ]