1700463707
//定义一个子类的全局共享变量
1700463708
1700463709
protected final Receiver receiver;
1700463710
1700463711
//实现类必须定义一个接收者
1700463712
1700463713
public Command(Receiver_receiver){
1700463714
1700463715
this.receiver=_receiver;
1700463716
1700463717
}
1700463718
1700463719
//每个命令类都必须有一个执行命令的方法
1700463720
1700463721
public abstract void execute();
1700463722
1700463723
}
1700463724
1700463725
在Command父类中声明了一个接收者,通过构造函数约定每个具体命令都必须指定接收者,当然根据开发场景要求也可以有多个接收者,那就需要用集合类型。我们来看具体命令,如代码清单15-23所示。
1700463726
1700463727
代码清单15-23 具体的命令
1700463728
1700463729
public class ConcreteCommand1 extends Command{
1700463730
1700463731
//声明自己的默认接收者
1700463732
1700463733
public ConcreteCommand1(){
1700463734
1700463735
super(new ConcreteReciver1());
1700463736
1700463737
}
1700463738
1700463739
//设置新的接收者
1700463740
1700463741
public ConcreteCommand1(Receiver_receiver){
1700463742
1700463743
super(_receiver);
1700463744
1700463745
}
1700463746
1700463747
//每个具体的命令都必须实现一个命令
1700463748
1700463749
public void execute(){
1700463750
1700463751
//业务处理
1700463752
1700463753
super.receiver.doSomething();
1700463754
1700463755
}
1700463756
[
上一页 ]
[ :1.700463707e+09 ]
[
下一页 ]