版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
命令模式
UML
解释说明
- 命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;支持请求排队、记录请求日志、支持可撤销操作。
代码实现
- Command.class
public interface Command {
void execute();
}
- Receiver.class
package learn19;
public class Receiver {
public void action() {
System.out.println("Receiver执行!");
}
}
- ConcreteCommand.class
package learn19;
public class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}
- Invoker.class
package learn19;
public class Invoker {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void executeCommmand() {
command.execute();
}
}
- Main.class
import learn19.*;
public class Main {
public static void main(String[] args) throws Exception {
Receiver r = new Receiver();
ConcreteCommand c = new ConcreteCommand(r);
Invoker i = new Invoker();
i.setCommand(c);
i.executeCommmand();
}
}
参考资料
- 大话设计模式