将一个请求封装成为一个对象, 使可以用不同的请求对客户进行参数化.
/**
* 命令接收者
* @author fan
*
*/
public class Receiver {
public void action() {
// TODO Auto-generated method stub
System.out.println("执行相关操作");
}
}
/**、
* 命令抽象类
* @author fan
*
*/
public abstract class Command {
public abstract void execute();
}
/**
* 命令实体
* @author fan
*
*/
public class ConcreateCommand extends Command {
private Receiver receive;
public ConcreateCommand(Receiver receive) {
this.receive = receive;
}
@Override
public void execute() {
// TODO Auto-generated method stub
receive.action();
}
}
/**
* 命令调用类
* @author fan
*
*/
public class InvokeList {
private List<Command> commands = new ArrayList<>();
public void addCommand(Command command) {
// TODO Auto-generated method stub
this.commands.add(command);
}
public void executeall() {
// TODO Auto-generated method stub
for(Command command:commands){
command.execute();
}
}
}
/**
* 测试
* @author fan
*
*/
public class Test {
public static void main(String[] args) {
/**
* invoke 调用者
* 调用相关的 命令
* 命令中指定接受者
*/
InvokeList invokeList = new InvokeList();
invokeList.addCommand(new ConcreateCommand(new Receiver()));
invokeList.addCommand(new ConcreateCommand(new Receiver()));
invokeList.addCommand(new ConcreateCommand(new Receiver()));
invokeList.executeall();
}
}
//res
执行相关操作
执行相关操作
执行相关操作
/**
* 偷懒 没写其他的 命令类 以及接收者类
* @author fan
*/