命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
维基上的解释:它尝试以对象来代表实际行动。命令对象可以把行动(action) 及其参数封装起来,于是这些行动可以被:
- 重复多次
- 取消(如果该对象有实现的话)
- 取消后又再重做
这些都是现代大型应用程序所必须的功能,即“撤销”及“重复”。
除此之外,可以用命令模式来实现的功能例子还有: - 交易行为
- 进度列
- 向导
- 用户界面按钮及功能表项目
- 线程 pool
- 宏收录
优点
- 降低了系统耦合度。
- 新的命令可以很容易添加到系统中去。
缺点
使用命令模式可能会导致某些系统有过多的具体命令类。
个人理解
通过类的方法将执行的逻辑封装在方法中,这个类叫接收类,方法就是执行具体逻辑的方法,然后定义一个命令接口,有一个execute方法。命令的实现类,将接收类作为execute方法的入参,方法内容就是接收类调用自己的执行逻辑的方法,这个执行逻辑的方法与该命令类的含义相同(比如,开灯命令类,实现的execute方法里就是接收类调用开灯方法)。最后就是调用类,定义一个命令接口为入参的方法,内容是命令接口调用execute方法。
网友评论