将“请求”封装成对象,以便使用不同的请求、队列或日志来参数化其他对象。命令模式也支持可撤销的操作。
实现命令接口
public interface Command {
public void execute();//执行命令
public void undo();//撤消命令
}
实现一个打开电灯的命令(封装一个命令)
class Light{
public void on() {
}
public void off() {
}
}
public class LightOnCommand implements Command{
private Light light;
public LightOnCommand(Light light){
this.light = light;
}
@Override
public void execute() {
light.on();
}
@Override
public void undo() {
light.off();
}
}