功能键设置(命令模式实战)
为了用户使用方便,某系统提供了一系列功能键,用户可以自定义功能键的功能,如功能键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();}
运行结果:
求关注,求关注,求关注!!!
可以直接问我要代码
功能键设置(命令模式实战)相关推荐
- 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 ...
- 10.操作系统实战——二级引导器探查收集信息(检查CPU,获取内存布局,初始化内核栈,放置内核文件和字库文件,建立MMU页表,设置图形模式,显示LOGO)
该课程来自极客时间<操作系统实战45讲>,踩坑笔记,具体操作步骤见"显示logo"目录. 在二级引导器中,我们要检查 CPU 是否支持 64 位的工作模式.收集内存布局 ...
- 初学 Java 设计模式(十五):实战命令模式 「扫码点餐」
一.命令模式介绍 1. 解决的问题 主要解决在系统中,行为请求者和行为实现者紧耦合的问题. 2. 定义 命令模式是一种行为设计模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象.这个转换会根 ...
- 16、设计模式-行为型模式-命令模式
命令模式(请求发送者与接收者解耦) 在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并 不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种 ...
- 设计模式:命令模式(Command)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- 请求发送者与接收者解耦——命令模式
本文转载自 :http://blog.csdn.net/lovelion/article/details/8796736 装修新房的最后几道工序之一是安装插座和开关,通过开关可以控制一些电器的打开和关 ...
- 设计模式之命令模式详解(附应用举例实现)
文章目录 1 命令模式介绍 2 命令模式详解 2.1 命令模式结构 2.2 命令模式实现 2.3 命令模式应用举例 3 实现命令队列 1 命令模式介绍 在现实生活中人们通过使用开关来控制一些电器的打开 ...
- 命令模式(Command模式)详解
在软件开发系统中,常常出现"方法的请求者"与"方法的实现者"之间存在紧密的耦合关系.这不利于软件功能的扩展与维护.例如,想对行为进行"撤销.重做.记录 ...
- 设计模式之美——行为型3:迭代模式、访问者模式、命令模式、解释器模式、中介模式
迭代器模式 迭代器模式的原理和实现 迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern). 迭代器模式.它用来遍历集合对象.这里说 ...
最新文章
- libevent中的信号处理
- 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)
- Java源码分析--Enum
- 从内存中加载并运行exe(两种方法)
- python自动排版 html_Python 实现自动完成A4标签排版打印功能
- asp.net url传值,弹窗
- 实现Apriori算法(python)
- Binder学习笔记(九)—— 服务端如何响应Test()请求 ?
- 主子式大于等于零的矩阵是半正定矩阵的证明方法之二
- SpringBoot+Layui就业信息管理系统
- .net下如何压缩图片大小,超简单
- Microsoft Visual SourceSafe 2005 简体中文版
- find函数的使用方法Matlab,matlab中find函数的使用说明——emily语法介绍
- python大数据运维工程师待遇_什么是大数据运维工程师
- LeeCode:救生艇(贪心)
- UEFI EDK2 遇到的问题集合
- 使用moment获取当天日期与下一天
- 1.【Windows图标点击无反应修复
- 20189200余超 2018-2019-2 移动平台应用开发实践第二周作业
- Scarpy爬取当当网书籍