命令模式

来源:互联网 发布: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

原创粉丝点击