当前位置: 首页 > news >正文

java实现命令模式

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

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

public interface Command {void execute();
}

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

public class LightOnCommand implements Command {private Light light;public LightOnCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOn();}
}

创建另一个具体命令类:

public class LightOffCommand implements Command {private Light light;public LightOffCommand(Light light) {this.light = light;}@Overridepublic void execute() {light.turnOff();}
}

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

public class Light {public void turnOn() {System.out.println("灯已打开");}public void turnOff() {System.out.println("灯已关闭");}
}

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

public class RemoteControl {private Command command;public void setCommand(Command command) {this.command = command;}public void pressButton() {command.execute();}
}

最后,可以测试这些类:

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

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

http://www.lryc.cn/news/157432.html

相关文章:

  • 【PowerQuery】PowerQuery学习路径
  • JDK7多线程并发环境HashMap死循环infinite loop,CPU拉满100%,Java
  • Linux下的系统编程——认识进程(七)
  • 2023年9月CSPM-3国标项目管理中级认证报名,找弘博创新
  • 使用ChatGLMTokenizer处理json格式数据
  • Redis基础特性及应用练习-php
  • Numpy知识点回顾与学习
  • H.264视频编码推荐的分辨率和码率配置表
  • Greenplum 实用工具-gpaddmirrors
  • 详解 Cent OS JDK 8.0 安装配置
  • 代理IP与网络安全在跨境电商中的关键作用
  • Kafka3.0.0版本——消费者(消费方式)
  • uni-app rich-text组件富文本图片展示不全问题
  • 文件包含漏洞学习小结
  • 同时安装python2和3解决方案
  • 通过jr-qrcode生成二维码并下载到客户端本地(Vue)
  • 命令执行漏洞(附例题)
  • iOS开发Swift-类型转换
  • python基础爬虫反爬破解
  • Maven 必备技能:MAC 系统下 JDK和Maven 安装及环境变量配置详细讲解
  • electron笔记无边框窗口、DLL调用、DLL函数返回指针
  • 递归算法学习——黄金矿工,不同路径III
  • pg 创建分区表 --chatGpt
  • 长城网络靶场,第一题笔记
  • el-form表单中不同数据类型对应的时间格式化和校验规则
  • Python代码雨
  • java.util.Optional
  • 微服务--Seata(分布式事务)
  • 发光太阳聚光器的蒙特卡洛光线追踪研究(Matlab代码实现)
  • (涨知识)-圣诞灯串类产品出口都需要做哪些认证?