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

Java 中命令模式,请用代码具体举例

在Java中,命令模式是一种行为设计模式,它允许将请求封装成一个对象,从而使得可以参数化其他对象对请求进行调用、队列化请求、或者记录请求日志,同时支持可撤销的操作。
下面是一个简单的示例代码,展示了如何使用命令模式:

// 定义命令接口
interface Command {void execute();
}// 具体命令类,实现了命令接口
class LightOnCommand implements Command {private Light light;public LightOnCommand(Light light) {this.light = light;}public void execute() {light.turnOn();}
}// 接收者类,真正执行命令的对象
class Light {public void turnOn() {System.out.println("灯已打开");}public void turnOff() {System.out.println("灯已关闭");}
}// 命令的调用者,负责执行命令
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 lightOnCommand = new LightOnCommand(light);// 创建命令的调用者对象RemoteControl remoteControl = new RemoteControl();// 设置命令remoteControl.setCommand(lightOnCommand);// 调用命令remoteControl.pressButton();}
}

在这个示例中,命令模式将“打开灯”的操作封装成了一个命令对象LightOnCommand,并且通过RemoteControl来执行这个命令。这样做的好处是,如果有其他命令,比如“关闭灯”的操作,只需要创建相应的命令对象并设置给RemoteControl即可,而不需要直接修改RemoteControl的代码。

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

相关文章:

  • 低延时+高并发+强事务丨DolphinDB 交易型内存存储引擎 IMOLTP 使用指南
  • 写代码的修养
  • springboot 问题整合
  • UNIAPP二维码展示页亮度调至最亮返回恢复进入前亮度
  • Golang ProtoBuf 初学者完整教程:安装
  • Isolation Forest 简介
  • Java爬虫携带sign签名
  • 设计者模式之中介者模式(下)
  • SAP SD学习笔记04 - 出荷Plant(交货工厂),出荷Point(装运点),输送计划,品目的可用性检查,一括纳入/分割纳入,仓库管理
  • bind包装器——C++新特性(三)
  • MXNet的下载安装及问题处理
  • Python 中的列表排序和排序规则
  • 面经整理1
  • ChatGPT个人专用版 SSRF漏洞复现(CVE-2024-27564)
  • Python中的可哈希与不可哈希对象详解
  • 【嵌入式DIY实例】-DIY速度计
  • 1.0 Hadoop 教程
  • 【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)
  • 智能水务系统:构建高效节水的城市水网
  • 【JavaEE初阶系列】——网络编程 UDP客户端/服务器 程序实现
  • 数据结构复习指导之绪论(算法的概念以及效率的度量)
  • C语言经典例题(23)
  • Gitea的简单介绍
  • Qt信号与槽
  • QQ农场-phpYeFarm添加数据教程
  • Java中创建多线程的方法
  • MT3020 任务分配
  • 【Redis】事务
  • 每日一题(leetcode238):除自身以外数组的乘积--前缀和
  • 内网通如何去除广告,内网通免广告生成器