將“請求”封裝成對象,以便使用不同的請求、隊列或日志來參數化其他對象。命令模式也支持可撤銷的操作。
實現命令接口
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();
}
}