Command命令模式: Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
在此写了7个java类来描述说明Command设计模式的实现方式;
1、 Control.java 命令控制者对象类 (命令控制器在这里至关重要,相当于遥控器的作用)
2、 Tv.java 命令接收者对象类
3、 Command.java 命令接口类
4、 CommandChannel.java 频道切换命令类
5、 CommandOff.java 关机命令类
6、 CommandOn.java 开机命令类
7、 CommandTest.java 带有main方法的测试类(命令发送者)
如下所示:
package lucene.kameilong.conmmand;
public class TV {
private int currentChanl = 0;
public void trunOn() {
System.out.println("TV is turnning on......");
}
public void trunOff() {
System.out.println("TV is turnning off......");
}
public void changeChanl(int chanl) {
this.currentChanl = chanl;
System.out.println("Now TV chanle is " + currentChanl + "......");
}
}
package lucene.kameilong.conmmand;
public class OnCommand implements Command {
private TV myTv;
public OnCommand(TV tv) {
this.myTv = tv;
}
public void excute() {
myTv.trunOn();
}
}
package lucene.kameilong.conmmand;
public interface Command {
public void excute();
}
package lucene.kameilong.conmmand;
public class CommandTest {
public static void main(String[] args) {
TV myTv = new TV();
OnCommand on = new OnCommand(myTv);
OffCommand off = new OffCommand(myTv);
ChangeCommand change = new ChangeCommand(myTv, 3);
Control control = new Control(on, off, change);
control.turnOn();
control.chageChanl();
control.turnOff();
}
}
package lucene.kameilong.conmmand;
public class OffCommand implements Command {
private TV myTv;
public OffCommand(TV tv) {
this.myTv = tv;
}
public void excute() {
myTv.trunOff();
}
}
package lucene.kameilong.conmmand;
public class ChangeCommand implements Command {
private TV myTv;
private int chanl;
public ChangeCommand(TV tv, int chanl) {
this.myTv = tv;
this.chanl = chanl;
}
public void excute() {
myTv.changeChanl(chanl);
}
}
package lucene.kameilong.conmmand;
public class Control {
private Command on, off, change;
public Control(OnCommand on, OffCommand off, ChangeCommand change) {
this.on = on;
this.off = off;
this.change = change;
}
public void turnOn() {
on.excute();
}
public void turnOff() {
off.excute();
}
public void chageChanl() {
change.excute();
}
}
分享到:
相关推荐
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
单片机仿真在电子工程和计算机科学领域中扮演着重要的角色,它允许开发者在实际硬件构建之前测试和验证他们的设计。Proteus是一款强大的单片机仿真软件,它结合了电路设计、模拟仿真和编程调试等多种功能,为单片机项目开发提供了便捷的平台。在这个“单片机仿真Proteus实例4X4键盘”的教程中,我们将深入探讨如何使用Proteus进行4X4矩阵键盘的仿真。 4X4键盘是一种常见的输入设备,常用于嵌入式系统和小型电子设备中。它由4行4列共16个按键组成,通过矩阵扫描方式实现键值的识别。在Proteus中模拟4X4键盘,首先需要搭建硬件电路模型。这包括连接按键到单片机的输入引脚,通常使用I/O口来读取按键状态。每个按键对应一个行线和一个列线,当按键按下时,行线和列线将短路,单片机通过检测这些短路来确定哪个键被按下。 在Proteus中,我们可以通过库搜索并添加所需的元器件,如74HC138译码器(用于驱动列线)和74HC238译码器(用于驱动行线),以及单片机(如AT89C51或类似的微控制器)和。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
花生好坏缺陷识别数据集,7262张图片,支持yolov7格式的标注,识别准确率在95.7% 两种标签: Good,Bad 花生好坏缺陷识别数据集,7262张图片,支持yolo,coco json,pasical voc xml格式的标注,识别准确率在95.7% 详情查看地址:https://backend.blog.csdn.net/article/details/144983881
使用ortools排产建模示例
Prime_Series_Level-1.z04 别下,这个是分卷压缩,笔者用来备份的
【8项合集】12月最新JavaGuide 面试指北 代码随想录八股文 面经 【8项全部打包】 【最新面试指北 + JavaGuide + 最新代码随想录八股文 + 50万字Java面试宝典 + Java高频面试题199解答 + Java一站式搞定技术项目面 + 大厂核心体系题 + 24大厂面试题第4季】 1. Java面试指北 2024 12月最新版 2. JavaGuide面试大全 3. 代码随想录最强八股文(第5版)最新合集 4. 2024大厂面试题(第4季) 5. 2024 Java面试宝典合集 6. 2024 Java高频面试题199个 7. 2024 一站式搞定Java技术和项目面试 8. Java大厂面试核心体系题
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
vue.min.js下载
Docker是一个开源的应用容器引擎,它通过操作系统级的虚拟化技术(如Linux上的命名空间和控制组)来创建和管理轻量级的、可移植的软件容器。这些容器能够在不同的主机之间无缝运行,并且具备一致的行为,因为它们包含了应用运行所需的所有依赖库、配置文件和服务。 Docker的主要资源包括Docker镜像、Docker容器和Docker仓库。Docker镜像是静态的、只读的模板,包含了运行一个应用程序所需的所有内容。Docker容器则是基于Docker镜像创建的一个轻量级、独立的运行环境,是Docker技术的核心运行时实体。Docker仓库则用于存储和分发Docker镜像,有公共和私有两种形式。 关于Docker的项目源码,通常镜像本身并不直接包含源码,因为镜像主要用于打包和运行应用程序及其依赖项。然而,如果你需要查看某个运行在Docker容器中的应用程序的源码,有几种方法可以实现。一种方法是通过容器挂载本地目录,将项目的源码文件映射到容器内。另一种方法是使用docker exec命令进入运行中的容器,然后在容器内查找并查看源码。通常,项目的源码会存放在特定的目录中,你可以通过查找Doc
煤层气开采热力流(thm)耦合案列讲解
内容概要:本文由一位汽车电子工程师撰写,主要探讨了两种常见数据格式——ARXML和JSON的区别及各自特点,并详细解释了为何在 AUTOSAR 标准中选用 ARXML而非JSON。首先阐述了 JSON 与 XML 的优缺点,并对比两者的应用场景,尤其针对Web环境以及复杂的文档描述和企业应用服务。接着深入讨论了 AUTOSAR 使用 ARXML 文件的关键理由:强大的复杂数据结构表达、严格的验证约束、与现有工具链的良好兼容性、高度扩展性的特性以及标准化和支持大型项目的性能。最后强调对于车载软件工程师来说,熟悉这两类文件是非常重要的,同时也提供了进一步学习 JSON 和 XML 的参考资料。 适用人群:面向汽车行业软件工程从业人员,特别是负责 AUTOSAR 系统设计与实现的研发工程师和技术爱好者。 使用场景及目标:有助于读者理解为什么在汽车行业中选择了 ARXML 而非 JSON 来承载 AUTOSAR 接口交互任务。同时帮助开发者掌握不同环境下选择恰当数据格式的基本原则。 其他说明:作者是一名有着丰富实践经验的汽车电子工程师,文中不仅涉及到技术细节的分析,还包括个人从业体会的心得感悟,表达了对未来技术发展的期待和个人信念。
基于STM32开发变频器-企业级成熟量产方案 包含:变频控制板-原理图、PCB 变频逆变器功率板-原理图 PCB 控制板源代码+硬件设计说明书+软件设计说明书。 变频逆变器功率板 硬件设计说明书+总体设计说明书+辅助电源变压器 额定输入电压:DC110V 输入电压范围:DC77-137.5V 电压:200V±5%(200VAC~240VAC可调) 频率: 42Hz±0.5Hz(35-50可调) 额定输出容量:1.3kW 1.55kVA 工作温度:-25℃~+70℃ 相对湿度:≤100%(不结露) 海拔:≤2500m 输出电压波形:正弦波
Java基于springboot+vue的电影院管理系统源码+数据库(高分项目),个人大三大作业设计项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码+数据库(高分项目)Java基于springboot+vue的电影院管理系统源码
永磁同步电机双矢量占空比模型预测转矩控制mptc,考虑全局最优占空比选择,使得全局占空比基本都小于1,仿真波形效果不错,有word文档解析。
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
大数据lzo压缩库,可直接使用
:Android 天气应用开发 在Android平台上,创建一个天气应用程序是一个常见的学习项目,也是期末大作业的理想选择,因为它涵盖了多个关键的技术点,包括网络请求、数据解析、UI设计以及地理位置服务等。本项目旨在帮助学生深入理解Android应用开发流程,提升实战技能。 :Android期末大作业必备 这个项目适合作为Android开发课程的期末大作业,因为它要求开发者具备一定的基础,例如对Android Studio的使用、XML布局设计、Java或Kotlin编程语言的掌握,以及对Android SDK的理解。通过完成这个项目,学生可以巩固课堂所学,同时提高独立解决问题的能力。 :Android Android是Google主导的开源移动操作系统,广泛应用于智能手机和平板电脑。开发Android应用需要使用Android Studio IDE,学习Android SDK,理解Android组件(如Activity、Intent、Service等),以及掌握XML和Java/Kot。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
音视频相关的OPENCV库,嵌入式Linux,ARM32平台,已使用32位arm-linux-gnueabihf编译链进行编译,可直接使用; 包含include/lib/bin等文件夹,内含动静态库,头文件,ffmpeg或ffplay命令等
COMSOL超声无损tfm,saft,全聚焦,合成孔径模型,单模型 模型介绍:本链接有两个模型,分别使用压力声学与固体力学进行仿真,副有模型说明。 使用者可自定义阵元数、激发频率、接收阵元等参数,仿真过程不用切激发阵元,一键激发,一次性接收信号 为什么要做两个模型,固体力学会产生波形转,波形交乱,压力声学波速是恒定(一般为纵波),两种波形成像效果不一样,可以做对比。 版本为6.0,低于6.0的版本打不开此模型