命令模式
来源:互联网 发布:java单元测试的好处 编辑:程序博客网 时间:2024/06/06 10:54
定义:
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;
对请求排队或记录请求日志,以及支持可撤销操作。
适用性:
1.抽象出待执行的动作一参数化某对象。
2.在不同的时刻指定、排列和执行请求。
3.支持取消操作。
4.支持修改日志,这样当系统崩溃是,这些修改可以被重做一遍。
5.用构建在原语操作上的高层操作构造一个系统。
类图:
代码:
package designPatterns;class Receiver{public void receive(){System.out.println("This is Receiver Class");}}abstract class Command{protected Receiver receiver;public Command(Receiver receiver){this.receiver= receiver;}public abstract void execute();}class CommandImpl extends Command{public CommandImpl(Receiver receiver){super(receiver);}public void execute(){receiver.receive();}}class Invoker{private Command command;public void setCommand(Command command){this.command=command;}public void execute(){command.execute();}}public class CommandTest {public static void main(String[] args) {Receiver rec = new Receiver();Command cmd = new CommandImpl(rec);Invoker i = new Invoker();i.setCommand(cmd);i.execute();}}
结果:
This is Receiver Class