Java命令设计模式

Java命令设计模式

定义

命令设计模式是一种行为设计模式,它将请求封装为一个对象,从而使你可以使用不同的请求对客户端进行参数化。

对应角色

  • 调用者(Invoker):发出请求的对象。
  • 命令(Command):执行请求的对象。
  • 接收者(Receiver):知道如何实施与执行一个请求相关的操作。

优缺点

优点

  • 降低系统的耦合度,新的命令可以很容易地加入到系统中。
  • 可以比较容易地设计一个命令队列和宏命令。
  • 可以方便地实现对请求的Undo和Redo。

缺点

  • 使用命令模式可能会导致某些系统有过多的具体命令类。
  • 过度使用命令模式可能会造成具体命令类大幅增长,从而提升系统的复杂度与维护难度。

应用场景

  • 需要将请求调用者和请求接收者解耦的场景。
  • 需要在不同的时间指定请求、将请求排队和执行请求的场景。
  • 需要支持命令的撤销(Undo)操作和恢复(Redo)操作的场景。
  • 需要支持命令的排队(Queue)操作的场景。

实例

// 命令接口
interface Command {
    void execute();
}

// 具体命令类
class ConcreteCommand implements Command {
    private Receiver receiver;

    ConcreteCommand(Receiver receiver) {
        this.receiver = receiver;
    }

    @Override
    public void execute() {
        receiver.action();
    }
}

// 接收者类
class Receiver {
    void action() {
        System.out.println("执行请求!");
    }
}

// 请求者类
class Invoker {
    private Command command;

    void setCommand(Command command) {
        this.command = command;
    }

    void executeCommand() {
        command.execute();
    }
}

// 客户端代码
public class Client {
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();

        invoker.setCommand(command);
        invoker.executeCommand();
    }
}

你可能感兴趣的:(设计模式系列,java,设计模式)