命令模式
来源:互联网 发布:tensorflow anaconda 编辑:程序博客网 时间:2024/06/03 14:47
package F_Command.a;
/**
* 命令模式:将请求封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也支持可撤销的操作
* 场景:队列请求(线程从队列中一个个删除命令对象,然后调用命令对象的execute方法),线程池,日程安排,事务系统(日志回滚)
*/
public class Main {
public static void main(String[] args) { // 电灯对象(接受者) Light light = new Light(); // 创建命令,将接受者传给它 LightOnCommand command = new LightOnCommand(light); // 遥控器(调用者) SimpleRemoteControl remote = new SimpleRemoteControl(); // 命令传给调用者 remote.setCommand(command); // 按下按钮 remote.buttonWasPressed();}
}
package F_Command.a;
public class SimpleRemoteControl {
Command command;
public void setCommand(Command command) { this.command = command;}public void buttonWasPressed() { command.execute();}
}
package F_Command.a;
/**
* 实现打开电灯的命令
*
*/
public class LightOnCommand implements Command {
Light light;
public LightOnCommand(Light light) { this.light = light;}public void execute() { light.on();}@Overridepublic void undo() { light.off();}
}
package F_Command.a;
public class Light {
public void on() {
System.out.println(“on”);
}
public void off() { System.out.println("off");}
}
package F_Command.a;
/**
* 命令接口
*
*/
public interface Command {
void execute();
void undo();
}
0 0
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- 命令模式
- pgsql用户自定义表结构信息获取
- 架构设计:负载均衡层设计方案(1)——负载场景和解决方式
- 多线程之线程等待与信号量
- 线程死锁
- RelativeLayout常用属性介绍
- 命令模式
- php模板原理
- 菜鸡与React互啄激烈过程
- [Torch] 2. torch
- 网络编程(一)--基本概念
- replica character liquid crystal display control
- Dijkstra 算法 Java实现
- copy assign retain 修饰属性的set 方法
- 分布式服务框架 发展过程