码迷,mamicode.com
首页 > 其他好文 > 详细

命令模式

时间:2016-02-22 12:17:03      阅读:125      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!