命令模式
命令模式定义:将“请求”封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作
一个命令通过在特定接受者上绑定一组动作来封装一个请求。要达到这一点,命令对象将动作和接受者包进对象中。这个对象只暴露出一个execute()方法,当此方法被调用的时候,接受者就会进行这些动作。从外表看,其他对象不知道究竟哪个接受者进行了哪些动作,只知道如果调用excute方法,请求的目的就能达到。
这个模型允许将“发出请求的对象”和“接受与执行请求的对象”分隔开。比方说对于遥控器API,我们需要分隔开“发出请求的按钮代码”和“执行请求的厂商特定对象”。那么当一个按钮被按下,只要调用该对象的orderUp()方法,电灯就开了,而遥控器不需要知道事情是怎么发生的,也不需要知道涉及哪些对象。