打字猴:1.7004778e+09
1700477800 return true;
1700477801
1700477802 }
1700477803
1700477804 }
1700477805
1700477806 代码清单32-3 gzip压缩算法
1700477807
1700477808 public class Gzip implements Algorithm{
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
[ 上一页 ]  [ :1.7004778e+09 ]  [ 下一页 ]