命令模式,按我的理解就是把请求的命令,和执行命令的业务分开来的一种设计模式。所以要包含命令对象,也要包含执行对象,以及添加命令的对象。代码实现如下
命令抽象类
/**
* 命令对象,提供执行的方法
*/
public abstract class Cammand {
public Receiver receiver;
public Cammand(Receiver receiver) {
this.receiver = receiver;
}
public abstract void execute();
}
具体命令实现类
public class CammandA extends Cammand {
public CammandA(Receiver receiver) {
super(receiver);
}
@Override
public void execute() {
receiver.dosomething();
}
}
处理任务类
/**
* 接受命令,处置类
*/
public abstract class Receiver {
public abstract void dosomething();
}
处理任务实现类
public class ReceiverA extends Receiver {
@Override
public void dosomething() {
System.out.println("执行了一条具体的命令");
}
}
添加命令类
/**
* 添加命令,并发送
*/
public class Sender {
public Cammand cammand;
public Sender(Cammand cammand) {
this.cammand=cammand;
}
public void addCammnd() {
System.out.println("添加了一条命令");
cammand.execute();
}
}
测试
public class CammandTest {
public static void main(String[] args) {
Receiver receiver = new ReceiverA();
Cammand cammand = new CammandA(receiver);
Sender sender = new Sender(cammand);
sender.addCammnd();
}
}
结果
添加了一条命令
执行了一条具体的命令