设计模式(行为模式) 之 命令模式

命令模式:行为的请求者  与 行为的实现者 通常呈现一种 紧耦合 的状态;而 命令模式  就是将 一组行为抽象为对象,实现二者的松耦合。

事例:“领导” 命令“我 完成这个任务”;

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();
}
}

测试: 运行结果:处理任务

 

**

posted @ 2017-03-05 23:45  鱼在天上飞  阅读(156)  评论(0编辑  收藏  举报