命令模式
命令模式(Command Pattern)在我们生活中非常常见,比如开关灯、电视遥控器换台等。 我们使用摇控器换台的时候,我们按下一个换台的按钮,然后电视机就会换台,按下调整音量调节按钮,电视机的音量也会进行相应的调整。 这个过程中: 1、我们发出增加音量命令(按下按钮) 2、遥控器接收到消息(命令请求者),给电视机发送请求 3、命令(调节音量或者换台等),红外等形式发出信号 4、电视接收信号,解析具体命令 5、执行命令 这就是一个命令模式,大概有以下几个角色: Client(客户端),也就是消费者端 Invoker(请求者/调用者) Command(命令,一般是接口或者抽象类) ConcreteCommand(具体的命令实现类) Receiver(接收者,执行具体操作) 如下图所示,即是命令模式的UML图: 然后我们来看一下代码怎么实现: Command /** * 命令接口 */ public interface Command { void execute (); } AdjustVolumnCommand /** * 调节音量 */ public class AdjustVolumnCommand implements Command { private TV tv ; public AdjustVolumnCommand ( TV tv ) { this .