1700463770
1700463771
public ConcreteCommand2(Receiver_receiver){
1700463772
1700463773
super(_receiver);
1700463774
1700463775
}
1700463776
1700463777
//每个具体的命令都必须实现一个命令
1700463778
1700463779
public void execute(){
1700463780
1700463781
//业务处理
1700463782
1700463783
super.receiver.doSomething();
1700463784
1700463785
}
1700463786
1700463787
}
1700463788
1700463789
这确实简化了很多,每个命令完成单一的职责,而不是根据接收者的不同完成不同的职责。在高层模块的调用时就不用考虑接收者是谁的问题,如代码清单15-24所示。
1700463790
1700463791
代码清单15-24 场景类
1700463792
1700463793
public class Client{
1700463794
1700463795
public static void main(String[]args){
1700463796
1700463797
//首先声明调用者Invoker
1700463798
1700463799
Invoker invoker=new Invoker();
1700463800
1700463801
//定义一个发送给接收者的命令
1700463802
1700463803
Command command=new ConcreteCommand1();
1700463804
1700463805
//把命令交给调用者去执行
1700463806
1700463807
invoker.setCommand(command);
1700463808
1700463809
invoker.action();
1700463810
1700463811
}
1700463812
1700463813
}
1700463814
1700463815
高层次的模块不需要知道接收者,Perfect!读者可以在实际应用中采用该模式,看看威力如何。
1700463816
1700463817
1700463818
1700463819
[
上一页 ]
[ :1.70046377e+09 ]
[
下一页 ]