命令模式
2016-04-13 09:16
204 查看
Demo场景:通过遥控器控制Light开的动作。
核心是把方法封装成对象。
(1)遥控器类,能够插入执行方法具体实现,并且按下按钮发出执行具体方法的动作:SimpleRemoteControl类,Command为插入指定方法的接口。
(2)一般插入遥控板的执行方法都应该实现统一的接口,现在定义这个接口:Command, 包含执行方法的命令。
(3)前面定义的只是执行方法的接口,需要一个具体实现的方法,但是这个方法是有具体的对象来执行的,因此先定义一个执行方法的具体类:Light
(4)好了,有了执行具体方法的类了,那么我们接着把这个类的方法封装成一个遥控板执行的方法对象,这样就成将这个执行方法具体实现插到遥控板上:LightOnCommand
最后,演示一下用遥控器打开Light:
核心是把方法封装成对象。
(1)遥控器类,能够插入执行方法具体实现,并且按下按钮发出执行具体方法的动作:SimpleRemoteControl类,Command为插入指定方法的接口。
package designpattern.command.remotecontrol; public class SimpleRemoteControl { Command slot; public SimpleRemoteControl(){} public void setCommand(Command command){ slot = command; } public void buttonWasPressed(){ slot.execute(); } }
(2)一般插入遥控板的执行方法都应该实现统一的接口,现在定义这个接口:Command, 包含执行方法的命令。
package designpattern.command.remotecontrol; public interface Command { public void execute(); }
(3)前面定义的只是执行方法的接口,需要一个具体实现的方法,但是这个方法是有具体的对象来执行的,因此先定义一个执行方法的具体类:Light
package designpattern.command.remotecontrol; public class Light { public void on(){ System.out.println("Light is on"); } }
(4)好了,有了执行具体方法的类了,那么我们接着把这个类的方法封装成一个遥控板执行的方法对象,这样就成将这个执行方法具体实现插到遥控板上:LightOnCommand
package designpattern.command.remotecontrol; public class LightOnCommand implements Command { Light light; public LightOnCommand(Light light){ this.light = light; } @Override public void execute() { light.on(); } }
最后,演示一下用遥控器打开Light:
package designpattern.command.remotecontrol; public class RemoteControlTest { public static void main(String[] args) { SimpleRemoteControl remote = new SimpleRemoteControl(); Light light = new Light(); LightOnCommand lightOn = new LightOnCommand(light); remote.setCommand(lightOn); remote.buttonWasPressed(); } }
相关文章推荐
- C++设计模式之命令模式
- 通过c++11改进我们的模式之改进命令模式
- php设计模式之命令模式使用示例
- 深入理解JavaScript系列(34):设计模式之命令模式详解
- JavaScript设计模式经典之命令模式
- PHP设计模式之命令模式的深入解析
- 学习php设计模式 php实现命令模式(command)
- php设计模式之命令模式的应用详解
- 命令模式--设计模式(一)
- Command模式
- 命令模式
- 设计模式--浅谈命令模式
- 细数iOS中的设计模式(二)
- Centos 7 控制台 调整 分辨率 : Mac Virtualbox 下的 centos 命令模式 控制台 分辨率 修改
- 设计模式 行为模式 命令模式 c语言 版本实现
- 设计模式 - 行为型模式 - 命令模式
- 命令模式
- 命令模式(Command Pattern)小结
- 8 设计模式之命令模式(八)
- DesignPattern之Command