命令模式案例
时间: 2023-07-03 17:25:18 浏览: 72
命令模式是一种行为设计模式,它允许您将操作封装在对象中,并通过在对象之间传递这些对象来解耦发送者和接收者。以下是一个简单的命令模式案例:
假设我们有一个遥控器,它可以控制一个灯。我们可以使用命令模式来实现遥控器的行为。首先,我们定义一个命令接口,例如:
```
public interface Command {
public void execute();
}
```
然后,我们实现一个具体的命令类,例如打开灯的命令:
```
public class TurnOnLightCommand implements Command {
private Light light;
public TurnOnLightCommand(Light light) {
this.light = light;
}
public void execute() {
light.turnOn();
}
}
```
这里的 `Light` 是一个接收者对象,它有一个 `turnOn()` 方法用于打开灯。然后,我们可以定义一个遥控器类,它有两个按钮,一个用于打开灯,另一个用于关闭灯:
```
public class RemoteControl {
private Command turnOnCommand;
private Command turnOffCommand;
public RemoteControl(Command turnOnCommand, Command turnOffCommand) {
this.turnOnCommand = turnOnCommand;
this.turnOffCommand = turnOffCommand;
}
public void pressTurnOnButton() {
turnOnCommand.execute();
}
public void pressTurnOffButton() {
turnOffCommand.execute();
}
}
```
最后,我们可以使用以下代码来测试我们的命令模式实现:
```
Light light = new Light();
Command turnOnCommand = new TurnOnLightCommand(light);
Command turnOffCommand = new TurnOffLightCommand(light);
RemoteControl remoteControl = new RemoteControl(turnOnCommand, turnOffCommand);
remoteControl.pressTurnOnButton(); // 打开灯
remoteControl.pressTurnOffButton(); // 关闭灯
```
这就是一个简单的命令模式案例,它允许我们将操作封装在对象中并解耦发送者和接收者。