命令模式
Posted ssdut_yrp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令模式相关的知识,希望对你有一定的参考价值。
命令模式,封装调用,把方法调用封装起来。
遥控器
命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。请求者可以是遥控器,而执行者对象就是厂商类其中之一的实例。
利用命令对象,把请求(例如打开电灯)封装成特定对象(客厅电灯对象)。所以,如果对每个按钮都存储一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相关的工作。只有命令对象能和正确的对象沟通,把事情做好。电灯和遥控器对象解耦了。
public interface Command{//命令接口
public void execute();
}
public class LightOnCommand implements Command{//实现命令
Light light;
public LightOnCommand(Light light){
this.light = light;
}
public void execute(){
light.on();
}
}
public class SimpleRemoteControl{//使用命令对象
Command slot;
public SimpleRemoteControl(){
}
public void setCommand(Command slot){
this.slot = slot;
}
public void buttonWasPressed(){
slot.execute();
}
}
SimpleRemoteControl simpleRemoteControl = new SimpleRemoteControl();//遥控器就是调用者,会传入一个命令对象,可以用来发出请求
Light light = new Light();//请求的接受者
LightOnCommand lightOn = new LightOnCommand(light);//命令
simpleRemoteControl.setCommand(lightOn);//命令传给调用者
simpleRemoteControl.buttonWasPressed();
定义命令模式,并敲定所有的细节。
命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
以上是关于命令模式的主要内容,如果未能解决你的问题,请参考以下文章