• java 实现命令行模式


    命令模式是一种行为设计模式,它允许您将请求封装为对象,以便您可以将其参数化、队列化、记录和撤销。在 Java 中实现命令模式涉及创建一个命令接口,具体命令类,以及一个接收者类,该接收者类执行实际操作。下面是一个简单的 Java 命令模式示例:

    首先,创建一个命令接口(Command):

    public interface Command {
        void execute();
    }
    
    • 1
    • 2
    • 3

    然后,创建一个具体命令类,实现该接口:

    public class LightOnCommand implements Command {
        private Light light;
    
        public LightOnCommand(Light light) {
            this.light = light;
        }
    
        @Override
        public void execute() {
            light.turnOn();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    创建另一个具体命令类:

    public class LightOffCommand implements Command {
        private Light light;
    
        public LightOffCommand(Light light) {
            this.light = light;
        }
    
        @Override
        public void execute() {
            light.turnOff();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    接下来,创建一个接收者类,该类包含实际的操作:

    public class Light {
        public void turnOn() {
            System.out.println("灯已打开");
        }
    
        public void turnOff() {
            System.out.println("灯已关闭");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    现在,创建一个遥控器类,该类可以设置命令并执行它们:

    public class RemoteControl {
        private Command command;
    
        public void setCommand(Command command) {
            this.command = command;
        }
    
        public void pressButton() {
            command.execute();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    最后,可以测试这些类:

    public class Main {
        public static void main(String[] args) {
            Light light = new Light();
            Command lightOn = new LightOnCommand(light);
            Command lightOff = new LightOffCommand(light);
    
            RemoteControl remoteControl = new RemoteControl();
    
            remoteControl.setCommand(lightOn);
            remoteControl.pressButton();
    
            remoteControl.setCommand(lightOff);
            remoteControl.pressButton();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    这是一个简单的命令模式示例,它演示了如何使用命令对象将操作参数化,并通过遥控器执行这些操作。您可以根据需要扩展和修改这个示例以满足特定的需求。

  • 相关阅读:
    【Maven】Maven快速入门2022版:从概念、安装到基本使用
    JVM内存模型:类加载过程
    JUL日志
    制造业中的微小缺陷检测——应用场景分析与算法选择(YoloV8/CANet)
    SpringBoot之用拦截器避免重复请求
    《HCIP-openEuler实验指导手册》1.1Apache安装与测试
    进程的概念,组成和特征(PCB)
    【JavaEE网络】TCP/IP协议:细节与应用
    python随机生成指定长度的字符串
    JavaScript项目1_猜数字(前导)
  • 原文地址:https://blog.csdn.net/sunyuhua_keyboard/article/details/132684590