java设计模式之命令模式
来源:互联网 发布:淘宝创立于哪一年 编辑:程序博客网 时间:2024/06/16 13:40
命令模式是行为性模式的一种,按名字的意思来解释这个模型就是帮助发命令,也就是实现发命令者和执行者之间的解耦。具体到实现我们需要一个发送命令的类,命令执行类以及命令类。发送的命令可以有很多种,所以命令要实现一个接口或者继承一个抽象类
public interface Command {/** * 命令只有一个方法就是执行 */public void exec();}命令执行类,因为不同的命令可能对应不同的执行类,所以执行类也可以定义成接口或者抽象类
public interface CommandReceiver {public void receiver();}
最差的情况就是一个命令类的实现类就对应一个命令执行类,写着是比较麻烦,但是扩展性高,这里暂时这样写作为演示
public class DelReceiver implements CommandReceiver {@Overridepublic void receiver() {System.out.println("删除命令");}}
public class DelCommand implements Command {private DelReceiver del;public DelCommand(DelReceiver del) {this.del = del;}@Overridepublic void exec() {del.receiver();}}
接下来要实现发送命令的类
public class Invoker {private Command command;public void setCommand(Command command){this.command = command;}public void action(){command.exec();}}
最后写一个test类
public class test {public static void main(String[] args) {Command com = new DelCommand(new DelReceiver());Invoker inv = new Invoker();inv.setCommand(com);inv.action();}}
调用的时候很麻烦,但是这样下来命令模式应该是已经可以理解了。写到这里在对比一下前两篇的内容代理模式和策略模式,如果把这篇中的Invoker类作为Command类的功能扩展或者说是辅助功能,DelCommand类作为DelCommand功能扩展或者说是辅助功能,可以看做是双重代理(不同的是代理事项相同的接口),也有点是策略的两重实现(应该是更像这个),是不是有那么点!!(学习中的感觉,很可能是因为学习的不到位才有这种感觉,完全是为了自己的学习做记录)
0 0
- Java设计模式-之Command命令模式
- Java设计模式之命令模式
- java设计模式之命令模式Command
- java设计模式之命令者模式
- JAVA设计模式之命令模式
- java设计模式之命令模式
- Java设计模式之命令模式
- java与设计模式之命令模式
- JAVA-设计模式之命令模式
- java设计模式之四命令模式
- java设计模式之命令模式
- java设计模式之命令模式
- Java设计模式泛型化之命令模式
- JAVA 设计模式之命令模式
- java设计模式之命令模式Command
- JAVA设计模式之命令模式
- java设计模式之命令模式
- java 设计模式之命令模式
- Web Service有关术语的解释
- kmp算法
- 判断其是否为一个回文串,java实现
- c++中使用struct,struct中有指针
- 用java代码实现二叉树的遍历算法
- java设计模式之命令模式
- 汉语拼音工具包相关实用方法
- Android项目编码的批量修改(GBK转UTF-8)
- springmvc和struts2的区别:
- runloop简单介绍及使用技巧
- LightOJ 1259 Goldbach`s Conjecture(数论)
- lighttpd-1.4.39 : mod_staticfile
- 浅谈百度外卖筛选悬浮框效果的实现
- 解决中文乱码问题