Java设计模式之命令模式

命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使用户能够用不同的请求对客户端进行参数化。这种模式可以将请求的发送者和接收者解耦,并且可以将请求保存在队列中、记录日志、撤销操作等。

在命令模式中,有以下几个关键角色:

  1. 命令(Command):定义了执行操作的接口,通常包含一个执行(execute)方法。
  2. 具体命令(Concrete Command):实现了命令接口,具体定义了执行操作的方法。
  3. 接收者(Receiver):执行命令所绑定的操作。
  4. 调用者(Invoker):负责调用命令对象执行请求。
  5. 客户端(Client):创建具体命令对象并设置其接收者。

下面是一个简单的示例,展示了命令模式的应用:

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

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

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

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

// 接收者类
class Receiver {
    public void action() {
        System.out.println("接收者执行操作");
    }
}

// 调用者类
class Invoker {
    private Command command;

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

    public 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();
    }
}

在上述示例中,命令模式的核心是将请求封装成一个命令对象(ConcreteCommand),并将命令对象与接收者对象(Receiver)进行绑定。调用者对象(Invoker)负责调用命令对象的执行方法,从而触发接收者执行相应的操作。

通过使用命令模式,可以实现请求的发送者和接收者之间的解耦,以及对请求进行参数化、记录日志、撤销操作等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值