命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
public interface Command{
public void excute();
}
public class LightOnCommand implements Command{
Light light;
public LightOnCommand(Light light){
this.light = light
}
@Override
public void execut(){
light.on();
}
}
使用命令对象
public class SimpleRemoteControl{
Command slot;
public SimpleRemoteControl(){}
public void setCommand(Command command){
slot = command;
}
public void buttonPressed(){
slot.execute();
}
}
遥控器简单的测试类
public class RemoteControlTest{
public static void main(String[] str){
SimpleRemoteControl remote = new SimpleRemoteControl();
Light light = new Light();
LightOnCommand lightCommand = new LightOnCommand(light);
remote.setCommand(lightCommand);
remote.buttonPressed();
}
}