命令模式(Command)
官方定义
将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
分类
行为型模式
思想
将实际的执行代码包装起来,封装成命令,使得调用者不用关心具体的实现细节,他只需要将这些命令组合起来使用,或者撤销某个命令。一般采用这种设计模式,接口都要求实现撤销操作。
UML类图
实现
首先定义Command接口,该接口定义2个方法,执行和撤销执行;
ConcreteCommand是具体的命令实现类,该类型接收Receiver对象,相当于对实际操作的封装,它的执行和撤销方法都是对Receiver的直接操作,使Invoker和Receiver彻底解耦;
Client负责将具体命令ConcreteCommand和Receiver关联起来;
Invoker负责对Command类型进行组合和调用,如果把Command比作一个按键,每个按键触发一系列操作,那么Invoker可当作是按键组合的遥控器,它无须关心具体的实现,只需关注将哪些按键组合起来以及何时该触发某个按键。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 兜兜转转的博客!
评论