设计模式-命令模式

命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许您根据不同的请求将客户端参数化,并将请求排队或记录日志,以及支持可撤销的操作。

在Java中实现命令模式通常需要以下几个关键组件:

  1. 命令接口(Command Interface):它是一个接口,定义了执行命令的方法。

  2. 具体命令类(Concrete Command):它是命令接口的具体实现,封装了执行特定操作的代码。

  3. 接收者类(Receiver):它是执行实际操作的类。具体命令类将调用接收者类的方法来执行命令。

  4. 调用者类(Invoker):它是负责调用命令对象的类。它将命令对象存储在一个列表中,并在需要时调用命令对象的执行方法。

下面是一个简单的Java代码示例,演示了如何实现命令模式:

复制代码
// 命令接口
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("Receiver: Performing action");
    }
}

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

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

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

// Usage
public class Main {
    public static void main(String[] args) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();

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

在这个示例中,我们定义了一个简单的命令模式,其中Receiver类表示接收者,ConcreteCommand类表示具体命令,Invoker类表示调用者。在Main类中,我们创建了一个接收者对象、一个具体命令对象和一个调用者对象,并演示了如何执行命令。

相关推荐
讨厌下雨的天空6 小时前
网络基础
网络·1024程序员节
金融小师妹21 小时前
基于NLP语义解析的联储政策信号:强化学习框架下的12月降息概率回升动态建模
大数据·人工智能·深度学习·1024程序员节
mjhcsp1 天前
C++ 动态规划(Dynamic Programming)详解:从理论到实战
c++·动态规划·1024程序员节
金融小师妹2 天前
基于机器学习框架的上周行情复盘:非农数据与美联储政策信号的AI驱动解析
大数据·人工智能·深度学习·1024程序员节
渣渣盟3 天前
Flink分布式文件Sink实战解析
分布式·flink·scala·1024程序员节
CoderYanger3 天前
优选算法-栈:69.验证栈序列
java·开发语言·算法·leetcode·职场和发展·1024程序员节
金融小师妹5 天前
基于机器学习与深度强化学习:非农数据触发AI多因子模型预警!12月降息预期骤降的货币政策预测
大数据·人工智能·深度学习·1024程序员节
紫麦熊5 天前
react+ts+vite+tailwind+shadcn
1024程序员节
日日行不惧千万里5 天前
MediaMTX详解
1024程序员节
金融小师妹5 天前
基于LSTM-GARCH模型:三轮黄金周期特征提取与多因子定价机制解构
人工智能·深度学习·1024程序员节