基础与定义
- 将“请求”封装成对象,以便使用不同的请求
- 解决了应用程序中对象的职责以及它们之间的通信
下命令的对象只需要知道要下的命令,不需要知道命令如何执行
代码实例
我们现在假设有一个遥控器,作为请求发送者,一个电灯泡,作为请求接受者,还有请求类和电灯泡请求类
// 电灯
public class Bubble {
public void on(){
System.out.println("bubble on");
}
}
// 命令抽象类
public abstract class Command {
public abstract void execute();
}
// 电灯请求类
public class BubbleCommand extends Command {
Bubble bubble=null;
public BubbleCommand(Bubble bubble) {
this.bubble=bubble;
}
public void setBubble(Bubble bubble) {
this.bubble = bubble;
}
@Override
public void execute() {
bubble.on();
}
}
public class RemoteControl {
Command command=null;
public RemoteControl(Command command) {
this.command=command;
}
public void action() {
command.execute();
}
}
// 使用
public static void main(String[] args) {
BubbleCommand command=new BubbleCommand(new Bubble());
RemoteControl remoteControl=new RemoteControl(command);
remoteControl.action();
}