命令模式
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