设计模式(行为模式) 之 命令模式
命令模式:行为的请求者 与 行为的实现者 通常呈现一种 紧耦合 的状态;而 命令模式 就是将 一组行为抽象为对象,实现二者的松耦合。
事例:“领导” 命令“我 完成这个任务”;
1,ICommander 抽象的命令者,接口,规定了用来封装请求的若干方法;
2,ConcreteCommander 具体命令的发送者,也就是命令源;(上述事例中的领导)
3,Invoker 请求者,具体命令的统一调度管理与维护类:请求者 是包含命令接口 的事例对象;请求者中 命令接口 的变量可以是任何具体命令的引用;请求者 负责调用具体的命令。
4,Receiver 命令的接受者,是具体对象;(上述事例中的我 行为“完成这个任务”)
代码实现:
/**
* 抽象的命令者
*/
public interface ICommand {
/**
* 委派
*/
public void assign();
}
/**
* 命令接受者,me
*/
public class ReceiverWorker {
/**
* 处理任务
*/
public void dealTask() {
System.out.println("处理任务");
}
}
/**
* 具体命令发送者:领导
*/
public class BossCommander implements ICommand {
/**
* 工作者
*/
private ReceiverWorker receiverWorker;
public BossCommander(ReceiverWorker receiverWorker) {
this.receiverWorker = receiverWorker;
}
@Override
public void assign() {
/**
* 处理任务
*/
receiverWorker.dealTask();
}
}
/**
* 请求者
*/
public class Invoker {
private ICommand command;
public Invoker(ICommand command) {
this.command = command;
}
/**
* 执行
*/
public void execute() {
command.assign();
}
}
测试: 运行结果:处理任务
**