command(命令)模式

command(命令)模式

ID:22779785

大小:137.00 KB

页数:8页

时间:2018-10-31

command(命令)模式_第1页
command(命令)模式_第2页
command(命令)模式_第3页
command(命令)模式_第4页
command(命令)模式_第5页
资源描述:

《command(命令)模式》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、设计模式----Command(命令)模式 GoF:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数华;对请求排队或记录请求日志,以及支持克撤销的操作。 在网上查找Command模式的相关资料,大多都是关于用户界面的。可能和GOF的先入为主有关系。在GoF的书中,四位作者举了个文本编辑器的例子。Command模式通过将请求本身变成一个对象来使工具箱对象可向未指定的应用对象提出请求。这个对象可被存储并像其他对象一样被传递。记得以前在《设计模式精解》的读书笔记中学习了几条经验,其中一条是:注意封装变化点。在Command模式中就是

2、对变化点的典型封装。在Command模式中有一个关键的抽象类,一般人们命名为Command类。他定义了一个执行操作的接口。它有一个抽象的execute操作。具体的Command子类(继承自Command的具体类)将接收者(Receiver类)作为其一个事例变量,并实现execute操作,指定接收者采取的动作。而接收者有执行该请求所需要的具体信息。 下面举个例子: 先定义关键的Command抽象类(这里也可以用接口):package Command;public abstract class Command...{    protected 

3、Receiver receiver;      public Command(Receiver receiver)     ...{         this.receiver = receiver;     }//end Command(...)    abstract public void execute();    }//end abstract class Command再继承一个具体类:package Command;public class ConcreteCommand extends Command...{        

4、public ConcreteCommand( Receiver receiver )    ...{        super(receiver);    }//end ConcreteCommand(...)     public void execute()     ...{         receiver.action();     }//end execute()}//end class ConcreteCommand定义一个Receiver类:package Command;public class Receiver...{ 

5、   public void action()     ...{         System.out.println("Receiver.Action()");    }//end Action()    }//end class Receiver定义一个Invoker类:package Command;class Invoker ...{     private Command command;     public void setCommand( Command command )     ...{         this.com

6、mand = command;     }//end setCommand(...)    public void executeCommand()     ...{         command.execute();     }//end executeCommand()    }//end class Invoker最后是调用:package Command;public class CommandPattern...{    Receiver rceiver = new Receiver();     Command command

7、 = new ConcreteCommand(rceiver);     Invoker invoker = new Invoker();    /** *//** Creates a new instance of CommandPattern */    public CommandPattern()    ...{            }//end CommandPattern        public void showCommandPattern()    ...{        invoker.setCommand(comm

8、and);        invoker.executeCommand();    }//end showCommandPattern()        public stati

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。