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