命令模式浅析
来源:互联网 发布:windows redis自启动 编辑:程序博客网 时间:2024/06/08 10:20
举个例子就比如说电灯,开关和风扇,我们可以通过开关去控制风扇和电灯的开和关。其中开关是发送者,电线是命令对象,而风扇和电灯就是接受者。电线是可以换的,所以就是说开关可以做两个不同的操作。
命令模式:其实就是把请求封装成一个对象,从而可以使用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。
这样的好处就在于我们在给接受者去发送请求的时候,然后让接受者去执行,可能发送请求的对象都不知道接受请求的对象是谁,以及执行了什么操作,可以将调用请求的和接受请求的进行一个解耦。
调用者Invoker:就是调用者
接受者Receiver:就是接收调用者请求执行操作的目标的对象
抽象命令Command:定义命令的接口,声明执行的方法
具体命令ConcreteCommand:会去创建一个具体命令对象并设定它的接收者。一般来说会去引用接收者,并且调用接收者的功能来完成命令要执行的操作。
客户端Client:就是创建具体的命令对象,并且去设置命令对象的接受者。客户端可以直接使用接受者对象
命令模式可以用做画图,自定义相机,滤镜效果等等。如果我们想要撤销回退某些操作就可以用命令模式。命令模式的典型应用其实就是支持应用程序的撤销和恢复操作
推荐篇文章:http://blog.csdn.net/u012881904/article/details/51155874
阅读全文
0 0
- 浅析命令模式
- 浅析PHP命令模式
- 命令模式浅析
- 浅析设计模式之命令设计模式
- Java设计模式之浅析命令模式
- 设计模式之单例模式、命令模式浅析
- iOS设计模式浅析之命令设计模式
- IMP/EXP命令浅析
- Nslookup 命令使用浅析
- 浅析ldd命令
- 浅析ldd命令
- YUM命令浅析
- ldd命令浅析
- Linux getopts 命令浅析
- 浅析vmstat命令
- 浅析ldd命令
- 浅析ldd命令
- 浅析ldd命令
- struts2.5与hibernate4.0
- 假设某年的1月1日是星期一,问:这一年中的第x天,是星期几?
- chrome 63 增加了 Workspaces 2.0 可以直接编辑本地文件了
- Java 数据类型
- Windows下Python模块的安装
- 命令模式浅析
- leetcode 661. Image Smoother
- Spring Boot忽略https证书:No subject alternative names present
- fetch请求
- git常用命令
- 正则表达式(一)
- 剑指offer——旋转数组的最小数字
- 深度学习: Nonlinear (非线性)
- 在ubuntu下安装jdk