Command 模式
来源:互联网 发布:windows已激活是正版吗 编辑:程序博客网 时间:2024/05/21 16:24
简述:
Command 命令模式:(参考http://wenku.baidu.com/view/798cc2f6f61fb7360b4c654a.html)
我理解的Command,通过interface调用不同具体实现
例如 执行一条命令,但是不关注是什么命令,那么只需要提供这个命令的接口方法的实现,给调用者就可以了,
在调用者自定义的方法里面可以执行打开电视,打开电灯。。等等
代码:
Command.java
package mp;public interface Command {void Execute();}
TV.java
package mp;public class TV {public TV(){}public void OpenScreen(){System.out.println("TV is showing");}}
TVOnCommand.java
package mp;/** * 关于电视操作的具体的实现 */public class TVOnCommand implements Command {private TV tv;public TVOnCommand(){}public TVOnCommand(TV tv){this.tv = tv;}public void Execute() {tv.OpenScreen();}}
invoker.java
package mp;public class Invoker {private Command command;public void runCommand() {command.Execute();}public void setCommand(Command command) {this.command = command;}}
Main.java
package mp;public class Main {public static void main(String[] args){TV tv = new TV();TVOnCommand toc = new TVOnCommand(tv);Invoker invoker = new Invoker();invoker.setCommand(toc);invoker.runCommand();}}
这里我把电视机打开抽象成为一条命令,也就是把TVOnCommand的execute()方法传给了Invoker类的command接口成员,在Invoker中,它帮我实现了runCommand的方法
至于里面究竟是开电视机还是开别的什么,已经不重要了。
输出:
- Command模式
- Command模式
- Command模式
- Command 模式
- Command 模式
- Command模式
- command模式
- Command模式
- Command模式
- Command模式
- Command 模式
- Command 模式
- Command模式
- Command模式
- Command模式
- COMMAND 模式
- Command模式
- Command模式
- LG F200L去掉lockscreen界面的韩国时间!
- A. Insomnia cure
- Windows下,伪分布模式启动TaskTracker失败问题之一
- 第一次去软件公司上班
- 程序员面试宝典--简历注意事项
- Command 模式
- 四款常用问答系统
- 通过one-to-many建立classes类与student类的关联
- many-to-one描述了多对一的关系 并没有inverse属性 因为对student对象的增、删、改的一部分操作就相当于维护了关系 column 外键
- public class Classes implements Serializable{
- public class Student implements Serializable{
- 解读QML之二
- 编程小技巧&&一些问题
- JavaWeb学习笔记之xml&DTD&schema