电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作。抽象命令角色由一个命令接口来扮演,有三个具体的命令类实现了抽象命令接口,这三个具体命令类分别代表三种操作:打开电视机、关闭电视机和切换频道。显然,电视机遥控器就是一个典型的命令模式应用实例。

Command.java

package TVCmd;public abstract class Command {public abstract void execute();
}

Televlsion.java

package TVCmd;public class Televlsion {public void open() {System.err.println("打开电视机。。。。");}public void close() {System.err.println("关闭电视机。。。。");}public void change() {System.err.println("换台。。。。");}}

TVOpenCommand.java

package TVCmd;public class TVOpenCommand extends Command {private Televlsion tv=new Televlsion();@Overridepublic void execute() {// TODO Auto-generated method stubtv.open();}}

TVCloseCommand.java

package TVCmd;public class TVCloseCommand extends Command {private Televlsion tv=new Televlsion();@Overridepublic void execute() {// TODO Auto-generated method stubtv.close();}}

TVChangeCommand.java

package TVCmd;public class TVChangeCommand extends Command {private Televlsion tv=new Televlsion();@Overridepublic void execute() {// TODO Auto-generated method stubtv.change();}}

Controller.java

package TVCmd;public class Controller {private Command command; public Controller(Command command) {this.command=command;}public void function() {command.execute();}}

Client.java

package TVCmd;public class Client {public static void main(String[] args) {// TODO Auto-generated method stubCommand cmd,cmd2,cmd3;//打开电视机cmd=new TVOpenCommand();Controller c1=new Controller(cmd);c1.function();//关闭电视机cmd2=new TVCloseCommand();Controller c2=new Controller(cmd2);c2.function();//换台cmd3=new TVChangeCommand();Controller c3=new Controller(cmd3);c3.function();}}

运行截图:

命令模式---电视机遥控器相关推荐

  1. 【java设计模式】命令模式——电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作。

    命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化:对请求排队或者记录请求日志,以及支持可撤销的操作. 命令模式包含如下角色: Comman ...

  2. 用遥控器的例子逐步介绍命令模式

    用遥控器的例子逐步介绍命令模式 摘要 这一篇文章用一个非常非常详细的用遥控器控制家电的例子来解释命令模式,用命令模式和不用命令模式的情况都有了具体的代码,方便大家做出比较,进而得到命令模式的优缺点.一 ...

  3. 命令模式——HeadFirst设计模式学习笔记

    命令模式:将"请求"封装成对象,以便使用不同的请求.日志.队列等来参数化其他对象.命令模式也支持撤销操作. 设计原则: 把方法的调用封装起来,调用此对象不需要知道它内部具体是如何运 ...

  4. 【设计模式】学习笔记8:命令模式

    本文出自   http://blog.csdn.net/shuangde800 走进命令模式 在餐厅的情境中,我们看看餐厅是怎样工作的: 1.顾客走进餐厅,点好菜后,生成订单交给女服务员. 2.女服务 ...

  5. Head First设计模式读书笔记五 第六章 命令模式(单例略过)

    本文示例代码材料源自Head First设计模式 以前整理自己整理的链接: https://blog.csdn.net/u011109881/article/details/59675658 极简命令 ...

  6. 《设计模式》之命令模式

    一.命令模式定义 命令大家都不会陌生,那么在开始命令模式之前,可以想象一下生活中的命令模式的特点: 如老板命令你完成一个OA项目是一个命令,接着看看其特点: 1.在上面的命令中,命令的执行者肯定是聪明 ...

  7. HeadFrist设计模式学习之做一个万能遥控器(命令模式)

    让我们先来看一下命令模式的定义: 将"请求"封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 看一下遥控器的需求: 可以控制所有的家电,进 ...

  8. 命令模式实例与解析--实例一:电视机遥控器

    电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮,不同的按钮对应电视机的不同操作.抽象命令角色由一个命令接口来扮演,有三个具体的命令类实现了抽象命令接口,这三个具体命令类分别代表三种操作 ...

  9. 设计模式之命令模式(java)实例——电视机遥控器

    一.问题描述 电视机是请求的接收者,遥控器是请求的发送者,遥控器上有一些按钮, 不同的按钮对应电视机的不同操作.抽象命令角色由一个命令接口来扮 演,有三个具体的命令类实现了抽象命令接口,这三个具体命令 ...

最新文章

  1. Microsoft.NET框架程序设计--20 CLR寄宿、应用程序域、反射
  2. x265 create方法
  3. 需要某个字体包才能正确显示此页面_[三分钟小文]前端性能优化-页面加载速度优化...
  4. Linux下设置python脚本文件为服务
  5. 微服务注册中心为什么要使用Consul替代Eureka?
  6. sql server php删除,使用 SQL Server 添加删除修改查询储存过程
  7. 在mysql中字符串的操作_mysql中的字符串操作.doc
  8. PopClip 能让像苹果电脑像 iOS 一样选中文字后弹出搜索、复制、粘贴等选项
  9. python小白系列1
  10. 用什么擦地最干净脑筋急转弯_你没想过的“脑筋急转弯”,才是启发孩子智力的法宝(附资源下载)...
  11. 获取Minecraft服务器信息API,Minecraft快速实现Yggdrasil API正版验证
  12. 显卡系列和种类你了解多少?AMD、NVIDIA显卡盘点
  13. 大数据学前准备--zookeeper详解与集群搭建(保姆级教程)
  14. HackTools————3、简易Web端口扫描
  15. 神经网络python识别词语_Python 神经网络是这样识别手写字符哒?
  16. 项目:双色球预测系统
  17. java 执行js脚本_java中调用js脚本
  18. 光耦继电器工作原理与参数详解
  19. Charles——Charles之https代理
  20. mitmproxy USB: usb_device_handl问题

热门文章

  1. 中国剩余定理模版【中国剩余定理】
  2. STM32H7xx 串口DMA发送接收(LL库)
  3. Cubemx配置STM32H7串口DMA
  4. vue3项目实战---知乎日报----首页功能
  5. 用MATLAB求解数据拟合问题
  6. 课程7 :PLC常见指令详解:比较指令(工控PLC工程师入门必读,5天可上手调试)
  7. 开源720VR全景制作系统源码 自适应手机电脑端
  8. docker命令大全(新手必备)
  9. 用python画樱桃小丸子_手机插画| 可爱的樱桃小丸子绘画全过程,你也可以画出来!...
  10. 自动计数报警器c语言程序,简易STC15F104E单片机定时报警器制作 附程序