设计模式之命令模式
来源:互联网 发布:node.gs卸载 编辑:程序博客网 时间:2024/06/07 14:43
命令模式:封装调用
这些绝密文件的 投递箱 已经促成了间谍工业的革命。我们只要把需求丢进去,就会有人消失,政府一夕之间改朝换代,而我干洗衣物也好了。我不必管何时,何处,或者如何完成;反正就是完成了。
命令模式将会把封装带到一个全新的境界:把方法调用封装起来。没错,通过封装方法调用,我们可以把运算块包装成形。所以调用此运算块的对象不需要关心事情是如何进行的,只要知道如何使用包装形势的方法来完成它就可以了。
命令模式可将动作的请求者从动作的执行者对象中解耦。
实现命令接口:
首先让所有的命令对象实现相同的包含一个方法的接口。在餐厅的例子中,我们将此方法成为orderup()。然而,现在改为一般惯用的名称execute().
public interface Command{
public void execute();
}
实现一个命令
现在设想实现一个打开电灯的命令,根据厂商所提供的类,Light类有两个方法:on()和off()。下面将是如何实现它的一个命令。
public class LightOnCommand implements Command{
Light light;
public LightOnCommand (Light light){
this.light =light;
}
public void execute(){
ligth.on();
}
}
假如我们有一个遥控器,它只有按钮和对应的插槽
public class SimpleRemoteControl{
Command slot;
public SimpleRemoteControl(){}
pubic void setCommand(Command command){
slot = command;
}
public void buttonWasPressed(){
slot.execute();
}
}
遥控器使用的简单测试
下面只有一段小小的代码,用来测试上面的简单遥控器。让我们来看看这个代码,并指出它和命令模式对应的关系。
public class RemoteControlTest{
public static void main(String[] args){
SimpleRemoteControl remote = new SimpleRemoteControl();
Light light = new Light();
LightOnCommand lightOn = new LightOnCommand(light);
remote.setCommand(light);
remote.buttonWasPressed();
}
}
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之--命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之--命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之命令模式
- 设计模式之 命令模式
- AFNetworking 2.x 设置header
- CakePHP不支持path/to路径,前后台无法方法
- Android自定义控件(三)继承控件
- Tokyo Tyrant(TTServer)系列(四)-tcrmgr远程管理与调试
- 题目1387:斐波那契数列
- 设计模式之命令模式
- 【Android】资源加载过程
- 用Pig处理高压缩比数据
- java中的native关键字详解
- 平衡二叉树(AVL树)小结
- jquery使用简单性能优化
- 持续集成初探
- 曝姚笛走出情伤低谷 低调复工拍戏
- jQuery实现的原理简介