打字猴:1.700477859e+09
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 ]  [ 下一页 ]