设计模式-命令模式
来源:互联网 发布:mac cad 看图软件 编辑:程序博客网 时间:2024/05/29 04:33
一、命令模式
命令模式将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。
当需要将发出请求的对象和执行请求的对象解耦的时候,使用命令模式。
二、应用场景
eg:家电自动化遥控器设计与应用编程接口,希望能创建出来一组控制遥控器的API,让每个插槽都能够控制一个或者一组装置。主要设计目标是让遥控器代码尽可能地简单,这样一来,新的厂商类一旦出现,遥控器并不需要随之修改。因此,我们采用了命令模式,从逻辑上将遥控器的类和厂商的类解耦。相信这将降低遥控器的生产成本,并大大减少未来维护时所需的费用。
三、要点
1、命令模式将发出请求的对象和执行请求的对象解耦
2、在被解耦的两者之间是通过命令对象进行沟通的。命令对象封装了接收者和一个或一组动作
3、调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用
4、调用者可以接受命令当做参数,甚至在运行时动态地进行
5、命令可以支持撤销,做法是实现一个undo()方法来回到execute()被执行前的状态
6、宏命令是命令的一种简单延伸,允许调用多个命令。宏方法也可以支持撤销
7、实际操作时,很常见使用“聪明”命令对象,也就是直接实现了请求,而不是将工作委托给接收者
8、命令也可以用来实现日志和事务系统
阅读全文
0 0
- 设计模式---命令模式
- 设计模式-命令模式
- 设计模式:命令模式
- 设计模式:命令模式
- 设计模式:命令模式
- 设计模式 命令模式
- 设计模式--命令模式
- 设计模式---命令模式
- 设计模式- 命令模式
- 设计模式---命令模式
- 设计模式 - 命令模式
- 【设计模式】【命令模式】
- 设计模式---命令模式
- 设计模式 - 命令模式
- 设计模式:命令模式
- 设计模式 - 命令模式
- 设计模式-命令模式
- 设计模式---命令模式
- 使用git将项目上传到github(最简单方法)
- oracle数据库常用语句汇总1(建表)
- [html&css]Pass Through
- 经典SQL语句大全
- 2752: [HAOI2012]高速公路(road)
- 设计模式-命令模式
- redis详解(四)高可用分布式集群
- 轮播图效果
- 常用加密算法的Java实现总结(二) ——对称加密算法AES
- android手机安全卫士、Kotlin漫画、支付宝动画、沉浸状态栏等源码
- git 很少使用的命令
- java中两个double类型相加抛出异常报错问题的解决方法
- mysql的行列转换
- java 线程相关概念