1700477859
1700477860
//执行解压缩算法
1700477861
1700477862
public boolean uncompress(String source,String to){
1700477863
1700477864
return al.uncompress(source,to);
1700477865
1700477866
}
1700477867
1700477868
}
1700477869
1700477870
也是非常简单,指定一个算法,执行该算法,一个标准的策略模式就编写完毕了。请读者注意,这里虽然有两个算法Zip和Gzip,但是对调用者来说,这两个算法没有本质上的区别,只是“形式”上不同,什么意思呢?从调用者来看,使用哪一个算法都无所谓,两者完全可以互换,甚至用一个算法替代另外一个算法。我们继续看调用者是如何调用的,如代码清单32-5所示。
1700477871
1700477872
代码清单32-5 场景类
1700477873
1700477874
public class Client{
1700477875
1700477876
public static void main(String[]args){
1700477877
1700477878
//定义环境角色
1700477879
1700477880
Context context;
1700477881
1700477882
//对文件执行zip压缩算法
1700477883
1700477884
System.out.println(”========执行算法========”);
1700477885
1700477886
context=new Context(new Zip());
1700477887
1700477888
/*
1700477889
1700477890
*算法替换
1700477891
1700477892
*context=new Context(new Gzip());
1700477893
1700477894
*
1700477895
1700477896
*/
1700477897
1700477898
//执行压缩算法
1700477899
1700477900
context.compress(“c:\windows”,“d:\windows.zip”);
1700477901
1700477902
//执行解压缩算法
1700477903
1700477904
context.uncompress(“c:\windows.zip”,“d:\windows”);
1700477905
1700477906
}
1700477907
1700477908
}
[
上一页 ]
[ :1.700477859e+09 ]
[
下一页 ]