首页 > 其他 > 详细

命令模式

时间:2016-02-22 12:15:17      阅读:153      评论:0      收藏:0      [点我收藏+]

命令模式,封装调用,把方法调用封装起来。
遥控器

命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。请求者可以是遥控器,而执行者对象就是厂商类其中之一的实例。

利用命令对象,把请求(例如打开电灯)封装成特定对象(客厅电灯对象)。所以,如果对每个按钮都存储一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相关的工作。只有命令对象能和正确的对象沟通,把事情做好。电灯和遥控器对象解耦了。

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();

定义命令模式,并敲定所有的细节。
命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。


命令模式

原文:http://blog.csdn.net/yrp_ssdut/article/details/50715186

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!