命令模式(Command):将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。
个人感觉和策略模式有点像,其核心思想都是面向接口编程,以及多用组合,少用继承。定义的公共接口具有相同的方法,然后不同的个体根据不同的需要实现该方法,然后一些“消费类”再根据自身需要选择合适的实现个体,但是不是直接使用该个体,而是使用公共的接口及接口方法。
只不过策略模式的接口定义的是比较实化的实在类型,接口方法定义成该实在类型所能具有的操作;命令模式的接口定义的是命令类型,接口方法定义成命令操作。
命令模式比较方便的一点就是可以构造一大堆命令接口对象的集合,然后只管调用公共方法就可以做完所有工作。