设计模式-命令模式
2016-01-07 11:53
141 查看
命令模式(Command)
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。
命令模式一般为三部分:接受者(Receiver)、命令(Command)、调用者(Invoker)
接受者代码
命令代码
调用者代码
测试
测试结果:
命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是怎么实现的。
命令模式一般为三部分:接受者(Receiver)、命令(Command)、调用者(Invoker)
接受者代码
public class Receiver { public void action(){ System.out.println("Roger that!"); } }
命令代码
public class Command { private Receiver receiver; public Command(Receiver receiver){ this.receiver=receiver; } public void execute(){ receiver.action(); } }
调用者代码
public class Invoker { private Command command; public Invoker(Command command){ this.command=command; } public void action(){ command.execute(); } }
测试
public class Demo { public static void main(String[] args) { Receiver receiver=new Receiver(); Command command=new Command(receiver); Invoker invoker=new Invoker(command); invoker.action(); } }
测试结果:
Roger that!
相关文章推荐
- django实现用户登陆访问限制@login_required
- 数据挖掘相关资料
- 使用mysql5.7.10
- Associative机制使用场景
- Linux常用命令:文件,用户和群组操作
- 1.大神班 UI 526
- 互联网安全
- WebRTC的native层语音处理
- java中文转byte数组
- 【jforum二次开发】(1)
- Android Handler在新线程中处理消息
- android获取系统时间
- 搜狗浏览器下 禁止浏览器自动填写用户名、密码
- 1.iOS第一个简单APP
- oracle杀死锁表的进程(转发+合并+自己实践)
- 设计模式-装饰模式
- 安装MySQL之后Error2003....不能连接的问题
- Vim实用小命令
- Linux强大的编辑器vim用法说明
- XCode使用技巧