1700477809
1700477810
//gzip的压缩算法
1700477811
1700477812
public boolean compress(String source,String to){
1700477813
1700477814
System.out.println(source+”—>”+to+“GZIP压缩成功!”);
1700477815
1700477816
return true;
1700477817
1700477818
}
1700477819
1700477820
//gzip解压缩算法
1700477821
1700477822
public boolean uncompress(String source,String to){
1700477823
1700477824
System.out.println(source+”—>”+to+“GZIP解压缩成功!”);
1700477825
1700477826
return true;
1700477827
1700477828
}
1700477829
1700477830
}
1700477831
1700477832
这两种压缩算法实现起来都很简单,Java对此都提供了相关的API操作,这里就不再提供详细的编写代码,读者可以参考JDK自己进行实现,或者上网搜索一下,网上有太多类似的源代码。
1700477833
1700477834
两个具体的算法实现了同一个接口,完全遵循依赖倒转原则。我们再来看环境角色,如代码清单32-4所示。
1700477835
1700477836
代码清单32-4 环境角色
1700477837
1700477838
public class Context{
1700477839
1700477840
//指向抽象算法
1700477841
1700477842
private Algorithm al;
1700477843
1700477844
//构造函数传递具体的算法
1700477845
1700477846
public Context(Algorithm_al){
1700477847
1700477848
this.al=_al;
1700477849
1700477850
}
1700477851
1700477852
//执行压缩算法
1700477853
1700477854
public boolean compress(String source,String to){
1700477855
1700477856
return al.compress(source,to);
1700477857
1700477858
}
[
上一页 ]
[ :1.700477809e+09 ]
[
下一页 ]