业务场景
一般就是说,你可能会执行一些操作,这些操作都实现一个接口
但是有不同的命令实现,然后命令的执行类就是同一个,你需要执行哪个命令就封装那个命令后发送给执行类即可
命令模式非常适合跟工厂方法模式结合起来使用,就是使用多个工厂来制造出不同的命令类来,将命令的构造放在工厂方法中
public class CommandPatternDemo {
public static void main(String[] args) {
Command commandA = new CommandA();
Command commandB = new CommandB();
Invoker invoker = new Invoker();
invoker.setCommand(commandA);
invoker.execute();
invoker.setCommand(commandB);
invoker.execute();
}
public interface Command {
void execute();
}
public static class CommandA implements Command {
@Override
public void execute() {
System.out.println("命令A的功能逻辑");
}
}
public static class CommandB implements Command {
@Override
public void execute() {
System.out.println("命令B的功能逻辑");
}
}
public static class Invoker {
private Command command;
public Command getCommand() {
return command;
}
public void setCommand(Command command) {
this.command = command;
}
public void execute() {
System.out.println("一些别的逻辑A");
command.execute();
System.out.println("一些别的逻辑B");
}
}
}