命令模式

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

posted @ 2021-02-18 11:32  Spear_J  阅读(125)  评论(0编辑  收藏  举报