1.用意
命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。
2.类图
3.代码
/*
* 抽象命令角色
*/
public interface Command {
void execute();
}
/*
* 具体命令类
*/
public class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
public void execute() {
receiver.action();
}
}
/*
* 请求者角色
*/
public class Invoker {
private Command command;
public Invoker(Command command) {
this.command = command;
}
public void action() {
command.execute();
}
}
/*
* 接受者
*/
public class Receiver {
public Receiver() {
}
public void action() {
S.s("Action has been taken.");
}
}
/*
* 测试类
*/
public class Test {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker(command);
invoker.action();
}
}
z