1700478059
1700478060
//gzip解压缩算法
1700478061
1700478062
public boolean uncompress(String source,String to){
1700478063
1700478064
System.out.println(source+”—>”+to+“GZIP解压缩成功!”);
1700478065
1700478066
return true;
1700478067
1700478068
}
1700478069
1700478070
}
1700478071
1700478072
大家可以这样思考这个问题,接收者就是厨房的厨师,具体要哪个厨师做这道菜则是餐馆的规章制度已经明确的,你让专做粤菜的师傅做一个剁椒鱼头,能做出好菜吗?在命令模式中,就是在抽象命令中定义了接收者的引用,然后在具体的实现类中确定要让哪个接收者进行处理。这就好比是客人点菜:我要一个剁椒鱼头,这就是一个命令,然后服务员(Inovker)接收到这个命令后,就开始执行,把这个命令指定给具体的执行者执行。
1700478073
1700478074
当然了,接收者这部分还可以这样设计,即按照职责设计接收者,比如压缩接收者、解压缩接收者,但接口需要稍稍改动,如代码清单32-14所示。
1700478075
1700478076
代码清单32-14 依照职责设计的接收者接口
1700478077
1700478078
public interface IReceiver{
1700478079
1700478080
//执行zip命令
1700478081
1700478082
public boolean zipExec(String source,String to);
1700478083
1700478084
//执行gzip命令
1700478085
1700478086
public boolean gzipExec(String source,String to);
1700478087
1700478088
}
1700478089
1700478090
接收者接口只是定义了每个接收者都必须完成zip和gzip相关的两个逻辑,有多少个职责就有多少个实现类。我们这里只有两个职责:压缩和解压缩,分别如代码清单32-15、32-16所示。
1700478091
1700478092
代码清单32-15 压缩接收者
1700478093
1700478094
public class CompressReceiver implements IReceiver{
1700478095
1700478096
//执行gzip压缩命令
1700478097
1700478098
public boolean gzipExec(String source,String to){
1700478099
1700478100
System.out.println(source+”—>”+to+“GZIP压缩成功!”);
1700478101
1700478102
return true;
1700478103
1700478104
}
1700478105
1700478106
//执行zip压缩命令
1700478107
1700478108
public boolean zipExec(String source,String to){
[
上一页 ]
[ :1.700478059e+09 ]
[
下一页 ]