为了用户使用方便,某系统提供了一系列功能键,用户可以自定义功能键的功能,如功能键FunctionButton可以用于退出系统(SystemExitClass),也可以用于打开帮助界面(DisplayHelpClass)。用户可以通过修改配置文件来改变功能键的用途,现使用命令模式来设计该系统,使得功能键类与功能类之间解耦,相同的功能键可以对应不同的功能。

类图:
代码:
抽象命令类:

public interface Command {public void execute();
}

具体命令类:
1.ExitCommand类:

public class ExitCommand implements Command {private SystemExitClass sec;public ExitCommand() {sec=new SystemExitClass();}@Overridepublic void execute() {sec.exit();}
}

2.HelpCommand类:

public class HelpCommand implements Command {private DisplayHelpClass dhc;public HelpCommand() {dhc=new DisplayHelpClass();}@Overridepublic void execute() {dhc.help();}
}

调用者:

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

接收者:
1.DisplayHelpClass类:

public class DisplayHelpClass {public void help(){System.out.println("打开帮助界面");}
}

2.SystemExitClass类

public class SystemExitClass {public void exit(){System.out.println("退出系统");}
}

客户类:

public class Client {public static void main(String[] args) {FunctionButton fb=new FunctionButton();Command exitCommand=new ExitCommand();fb.setCommand(exitCommand);fb.click();FunctionButton fb1=new FunctionButton();Command helepCommand=new HelpCommand();fb.setCommand(helepCommand);fb.click();}

运行结果:

求关注,求关注,求关注!!!
可以直接问我要代码

功能键设置(命令模式实战)相关推荐

  1. mysql use mysql_1、设置mysql远程访问执行mysql 命令进入mysql 命令模式,执行如下SQL代码mysql use mysql; mysql GRANT ALL ON ...

    1.设置mysql远程访问 执行mysql 命令进入mysql 命令模式,执行如下SQL代码mysql> use mysql; mysql> GRANT ALL ON *.* TO adm ...

  2. 10.操作系统实战——二级引导器探查收集信息(检查CPU,获取内存布局,初始化内核栈,放置内核文件和字库文件,建立MMU页表,设置图形模式,显示LOGO)

    该课程来自极客时间<操作系统实战45讲>,踩坑笔记,具体操作步骤见"显示logo"目录. 在二级引导器中,我们要检查 CPU 是否支持 64 位的工作模式.收集内存布局 ...

  3. 初学 Java 设计模式(十五):实战命令模式 「扫码点餐」

    一.命令模式介绍 1. 解决的问题 主要解决在系统中,行为请求者和行为实现者紧耦合的问题. 2. 定义 命令模式是一种行为设计模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象.这个转换会根 ...

  4. 16、设计模式-行为型模式-命令模式

    命令模式(请求发送者与接收者解耦) 在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并 不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种 ...

  5. 设计模式:命令模式(Command)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. 请求发送者与接收者解耦——命令模式

    本文转载自 :http://blog.csdn.net/lovelion/article/details/8796736 装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关 ...

  7. 设计模式之命令模式详解(附应用举例实现)

    文章目录 1 命令模式介绍 2 命令模式详解 2.1 命令模式结构 2.2 命令模式实现 2.3 命令模式应用举例 3 实现命令队列 1 命令模式介绍 在现实生活中人们通过使用开关来控制一些电器的打开 ...

  8. 命令模式(Command模式)详解

    在软件开发系统中,常常出现"方法的请求者"与"方法的实现者"之间存在紧密的耦合关系.这不利于软件功能的扩展与维护.例如,想对行为进行"撤销.重做.记录 ...

  9. 设计模式之美——行为型3:迭代模式、访问者模式、命令模式、解释器模式、中介模式

    迭代器模式 迭代器模式的原理和实现 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern). 迭代器模式.它用来遍历集合对象.这里说 ...

最新文章

  1. libevent中的信号处理
  2. 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)
  3. Java源码分析--Enum
  4. 从内存中加载并运行exe(两种方法)
  5. python自动排版 html_Python 实现自动完成A4标签排版打印功能
  6. asp.net url传值,弹窗
  7. 实现Apriori算法(python)
  8. Binder学习笔记(九)—— 服务端如何响应Test()请求 ?
  9. 主子式大于等于零的矩阵是半正定矩阵的证明方法之二
  10. SpringBoot+Layui就业信息管理系统
  11. .net下如何压缩图片大小,超简单
  12. Microsoft Visual SourceSafe 2005 简体中文版
  13. find函数的使用方法Matlab,matlab中find函数的使用说明——emily语法介绍
  14. python大数据运维工程师待遇_什么是大数据运维工程师
  15. LeeCode:救生艇(贪心)
  16. UEFI EDK2 遇到的问题集合
  17. 使用moment获取当天日期与下一天
  18. 1.【Windows图标点击无反应修复
  19. 20189200余超 2018-2019-2 移动平台应用开发实践第二周作业
  20. Scarpy爬取当当网书籍

热门文章

  1. Oracle获取当前毫秒级时间
  2. 自学一年Java程序员,能找到月入10K的工作吗?
  3. 了解常用音频接口,看这篇全了!
  4. HTML实现3D相册
  5. 身份证工具类各式各样的操作
  6. 【基础教程】Python复数类型(complex)详解
  7. 习题6-7 简单计算器 (20 分)
  8. 最小二乘法多项式曲线拟合原理与实现(错误地方已经修改底层补充自己写的java实现)
  9. string头文件详解
  10. C语言-冒泡排序函数