简介
命令模式是行为型模式的一种,其将一系列命令进行封装,当我们需要调用某个命令时,不需要直接调用对象本身去执行对应的方法。在生活中,对象模式也比较常见,比如我们乘坐的电梯,其对应的有上楼、下楼、停止等命令,在代码实现过程中,我们不会直接去操作电梯对象,而是去操作对应的命令类,这样就有利于我们代码后期的扩展。下面以电梯的例子来Demo。
Demo示例
1.首先定义电梯类,定义其中的上升、下降和停止三个方法,其中每个方法对应一个命令类。
public class Elevator {
public void up() {
System.out.println("elevator up");
}
public void down() {
System.out.println("elevator down");
}
public void stop() {
System.out.println("elevator stop");
}
}
2.定义电梯命令的接口,上升、下降和停止三个类实现该接口。
public interface Command {
void execute();
}
public class UpCommand implements Command{
private Elevator elevator;
public UpCommand(Elevator elevator) {
this.elevator = elevator;
}
@Override
public void execute() {
this.elevator.up();
}
}
public class DownCommand implements Command{
private Elevator elevator;
public DownCommand(Elevator elevator) {
this.elevator = elevator;
}
@Override
public void execute() {
this.elevator.down();
}
}
public class StopCommand implements Command{
private Elevator elevator;
public StopCommand(Elevator elevator) {
this.elevator = elevator;
}
@Override
public void execute() {
this.elevator.stop();
}
}
3.客户端调用
public class Test {
public static void main(String[] args) {
Elevator elevator = new Elevator();
Command stopCommand = new StopCommand(elevator);
Command upCommand = new UpCommand(elevator);
Command downCommand = new DownCommand(elevator);
upCommand.execute(); // elevator up
stopCommand.execute(); // elevator stop
downCommand.execute(); // elevator down
}
}