经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » 设计模式 » 查看文章
命令模式
来源:cnblogs  作者:Spear_J  时间:2021/2/18 15:34:36  对本文有异议

1、背景

       当需要向某些对象发送请求,但是不知道请求的接受者是谁,也不知道被请求的操作是哪个,是得请求发送者与请求接受者解耦。

2、模式定义

       命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。

3、模式结构

       命令模式包括如下角色:

  • Command:抽象命令类
  • ConcreteCommand:具体命令类
  • Invoker:调用者
  • Receiver:接收者
  • Client:客户类

4、优点

  • 降低系统的耦合度。
  • 新的命令可以很容易的加入到系统中。
  • 可以比较容易的设计一个命令队列和宏命令(组合命令)。
  • 可以方便的实现对请求的Undo和Redo。

5、缺点

       使用命令模式可能会导致某些系统有过多的具体命令雷。由于针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。

6、为什么使用命令模式

(1)我们需要Client和Receiver同时开发,而且在开发过程中需要分别不停地重构,改名。

(2)要求有Redo和Undo等功能。

(3)要求命令不按照调用顺序执行,而是按照执行时的情况排序执行。

(4)在上述情况下,接收者有多个。

编写不易,转载注明出处:https://www.cnblogs.com/lmh15054109/p/14411160.html

原文链接:http://www.cnblogs.com/lmh15054109/p/14411160.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号