打字猴:1.700463391e+09
1700463391
1700463392 命令模式比较简单,但是在项目中非常频繁地使用,因为它的封装性非常好,把请求方(Invoker)和执行方(Receiver)分开了,扩展性也有很好的保障,通用代码比较简单。我们先阅读一下Receiver类,如代码清单15-13所示。
1700463393
1700463394 代码清单15-13 通用Receiver类
1700463395
1700463396 public abstract class Receiver{
1700463397
1700463398 //抽象接收者,定义每个接收者都必须完成的业务
1700463399
1700463400 public abstract void doSomething();
1700463401
1700463402 }
1700463403
1700463404 很奇怪,为什么Receiver是一个抽象类?那是因为接收者可以有多个,有多个就需要定义一个所有特性的抽象集合——抽象的接收者,其具体的接收者如代码清单15-14所示。
1700463405
1700463406 代码清单15-14 具体的Receiver类
1700463407
1700463408 public class ConcreteReciver1 extends Receiver{
1700463409
1700463410 //每个接收者都必须处理一定的业务逻辑
1700463411
1700463412 public void doSomething(){
1700463413
1700463414 }
1700463415
1700463416 }
1700463417
1700463418 public class ConcreteReciver2 extends Receiver{
1700463419
1700463420 //每个接收者都必须处理一定的业务逻辑
1700463421
1700463422 public void doSomething(){
1700463423
1700463424 }
1700463425
1700463426 }
1700463427
1700463428 接收者可以是N个,这要依赖业务的具体定义。命令角色是命令模式的核心,其抽象的命令类如代码清单15-15所示。
1700463429
1700463430 代码清单15-15 抽象的Command类
1700463431
1700463432 public abstract class Command{
1700463433
1700463434 //每个命令类都必须有一个执行命令的方法
1700463435
1700463436 public abstract void execute();
1700463437
1700463438 }
1700463439
1700463440 根据环境的需求,具体的命令类也可以有N个,其实现类如代码清单15-16所示。
[ 上一页 ]  [ :1.700463391e+09 ]  [ 下一页 ]