命令模式
来源:互联网 发布:淘宝玩具有什么 编辑:程序博客网 时间:2024/06/05 20:54
命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也可支持撤销的操作。
命令模式可将”动作的请求者”从”动作的执行者”对象中解耦。
需求实例:遥控器控制点灯的开关。
1、创建一个命令
客户负责创建命令对象(开灯)。让所有的命令对象实现相同的包含一个方法的接口。
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(); }}
2、创建接受者实体,它负责接受请求,执行命令。它是动作的执行者。
public class Light { public void on(){ System.out.println("灯亮了"); }}
3、创建调用者,它是动作的请求者,要调用具体的命令实体,可以设置不同的命令。
public class SimpleRemoteControl { //保存不同的命令 Command command; public SimpleRemoteControl(){} //设置和接受不同的命令 public void setCommand(Command command){ this.command=command; } //触发命令的执行 public void buttonWasPresses(){ command.execute(); }}
4、实际使用
public class RemoteControlTest { public static void main(String[] args) { //定义调用者实体(请求者) SimpleRemoteControl simpleControl=new SimpleRemoteControl(); //调用接受者实体(执行者) Light light=new Light(); //定义命令,需要设置一个接受者 Command lightCommand=new LightOnCommand(light); //在调用者中设置命令 simpleControl.setCommand(lightCommand); //发送请求,开灯 simpleControl.buttonWasPresses(); }}
阅读全文
0 0
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- c++控制台贪吃蛇(类实现)
- 路由选择基础
- Java和C++在函数参数传递上的不同
- 滚动图
- 注意头文件规则,避免链接错误:重定义(multiple defination)
- 命令模式
- 总结下android开发规范
- 0519 G2n#W2A-A 解方程
- Python 边做边学 5 请求分析
- 脱不花:关于时间管理的几个想法
- Problems and solutions when run Jekyll on Windows
- 《机器学习》(周志华)学习笔记(二)模型评估与选择
- java解析json数组
- 计算机英语·S