命令模式:将一个请求封装为一个对象,从而使我们可以用不同的请求对客户进行参数化。对请求排队或者请求记录日志。以及支持可撤销的操作。也称之为动作Action模式。事务transaction模式。
命令执行者
package com.dasenlin.cn;
/**
* 接受者
* @author Administrator
*
*/
public class Receiver {
public void action(){
System.out.println("Receiver.action()");
}
}
需要实现的命令方法
package com.dasenlin.cn;
public interface Command {
/**
* 一个执行命令的方法
*/
void execute();
}
class ConcreteCommond implements Command{
private Receiver receiver;
public ConcreteCommond(Receiver receiver) {
super();
this.receiver = receiver;
}
@Override
public void execute() {
System.out.println("搞起处理!");
receiver.action();
}
}
命令的发布者
package com.dasenlin.cn;
public class Invoke {
private Command command;
public Invoke(Command command) {
super();
this.command = command;
}
//业务方法,调用命令类的方法
public void call(){
command.execute();
}
}
测试
package com.dasenlin.cn;
public class Client {
public static void main(String[] args) {
Command comm =new ConcreteCommond(new Receiver());
Invoke in =new Invoke(comm);
in.call();
}
}