场景:机箱外面有个按钮,按钮连着线,线接着主板。按下按钮发送启动电脑的命令。

1.


1.1 组装

1.2 触发

public interface Command {//执行命令对应的操作 public void execute();
}public class ConcreteCommand implements Command {//持有相应的接受者对象 private Receiver receiver = null;//示意,命令对象可以有自己的状态 private String state;public ConcreteCommand(Receiver receiver){this.receiver = receiver;}public void execute() {//通常会转调接受者对象的相应方法,让接受者来真正执行功能receiver.action();}
}public class Invoker { private Command command = null; public void setCommand(Command command) {this.command = command;} public void runCommand() {//调用命令对象的执行方法command.execute();}
}public class Receiver { public void action(){//真正执行命令操作的功能代码}
}public class Client {  //示意,负责创建命令对象,并设定它的接受者 public void assemble(){//创建接受者Receiver receiver = new Receiver();//创建命令对象,设定它的接收者Command command = new ConcreteCommand(receiver);//创建Invoker,把命令对象设置进去Invoker invoker = new Invoker();invoker.setCommand(command);invoker.runCommand(command);}
}

《研磨设计模式》chap13 命令模式相关推荐

  1. 设计模式 之 命令模式

    2019独角兽企业重金招聘Python工程师标准>>> 设计模式 之 命令模式 命令模式比较简单,不过多赘述 为什么需要命令模式 将"行为请求者"与"行 ...

  2. 研磨设计模式之 策略模式--转

    http://www.uml.org.cn/sjms/201009092.asp 研磨设计模式之 策略模式   2010-09-09 作者:云飞龙行 来源:云飞龙行的blog   先感谢众多朋友的支持 ...

  3. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  4. 23种设计模式之命令模式和策略模式的区别

    文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...

  5. 研磨设计模式之外观模式(Facade)(解决方案)

    3.2  解决方案 3.2.1  外观模式来解决 用来解决上述问题的一个合理的解决方案就是外观模式.那么什么是外观模式呢? (1)外观模式定义 这里先对两个词进行一下说明,一个是界面,一个是接口. 界 ...

  6. 行为型设计模式之命令模式

    命令模式描述 官方解释 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作. 个人理解 将软件代码划分为三个方面:① 调用者(入口).② ...

  7. 研磨设计模式 之 组合模式(Composite) 3——跟着cc学设计系列

    15.3  模式讲解 15.3.1  认识组合模式 (1)组合模式的目的 组合模式的目的是:让客户端不再区分操作的是组合对象还是叶子对象,而是以一个统一的方式来操作. 实现这个目标的关键之处,是设计一 ...

  8. 设计模式之命令模式(Command)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...

  10. 设计模式复习-命令模式

    #pragma once #include "stdafx.h" #include<set> #include<string> #include<io ...

最新文章

  1. Spring Cloud入门教程-Hystrix断路器实现容错和降级
  2. pytorch自动微分的几个例子
  3. js整形转成double_那么,来用 JS 画个黑洞吧!
  4. FAT文件系统原理详细介绍
  5. 《应用商务统计分析》前言
  6. VC2005 MFC静态文本框背景色设置
  7. 使用stm32驱动RC522读取IC卡
  8. OpenCV4图像处理算子不完全手册-入门篇(已完结)
  9. 新浪微博开放平台接入
  10. 2021-6-25 组态王与modbus rtu从机STM32精英开发板通信
  11. 深度系统安装移动硬盘启动_如何安装PE系统(移动硬盘) ?
  12. 第四届传智杯 小卡与质数(java实现)
  13. 学习Python的做笔记神器——Jupyter Notebook
  14. GDAL error: ‘NoneType‘ object has no attribute ‘GetGeoTransform‘
  15. MacOS Catalina Beta使用体验
  16. 哪里有纯免费的PPT模板下载网站?
  17. 门诊挂号c语言程序代码,C语言版医院管理系统
  18. spring注解之@PreDestroy的实现原理
  19. 开源代码分析技巧之三——老外如是说
  20. php unhtml包,JavaScript 版本的 PHP serialize/unse_js

热门文章

  1. websocket中发生数据丢失_tcp协议;websocket协议;同源策略和跨域
  2. 高度平衡二叉树的构建_平衡二叉树建立及其增删改查(JAVA)
  3. python phpstudy_GitHub - Writeup007/phpStudyBackDoor: phpStudy后门检测与利用工具,Python脚本,可一键 GetShell。...
  4. python生成报告_python生成测试报告
  5. python输入学号返回成绩_Python模拟登陆正方教务系统并抓取成绩单
  6. linux 普通用户crond,linux下普通用户的定时任务
  7. aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)
  8. 边缘数据中心2024年市场规模将超过130亿美元
  9. centos 开发php扩展,【PHP扩展】centos给PHP安装扩展
  10. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)