【设计模式 - 14】之命令模式(Command)
2024-10-15 07:55:59
1、模式简介
命令模式的定义:
命令模式将命令封装成对象,从而使调用一个命令变为调用一个对象的指定方法。
命令模式的优点:
- 降低了系统耦合度;
- 新的命令可以很容易的添加到系统中去。
命令模式的缺点:
会导致系统中有过多的具体命令类。
2、案例
在一个系统中有三种命令:点击按钮、加载图片和访问网络。我们将三种命令分别封装成三个具体的命令类,通过调用不同的具体命令类来执行不同的命令。具体代码如下:
命令接口Command中的代码如下:
public interface Command {
void execute();
}
点击按钮的命令ButtonCommand中的代码如下:
public class ButtonCommand implements Command { @Override
public void execute() {
System.out.println("点击了Button按钮!");
}
}
访问网络和加载图片的命令与点击按钮的命令大同小异,可以参考博客最后的GitHub中的代码。
测试类Test中的代码:
public class Test {
public static void main(String[] args) {
List<Command> commands = new ArrayList<>();
commands.add(new ButtonCommand());
commands.add(new ImageCommand());
commands.add(new HttpCommand()); for (Command c : commands) {
c.execute();
}
}
}
运行结果如下图所示:
最后贴出命令模式的GitHub代码地址:【GitHub - Command】。
最新文章
- BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
- Linux crontab 定时任务详解
- calc 多项式计算 (STL版和非STL版) -SilverN
- 武林[HDU1107]
- apache性能优化
- C++11右值引用,移动主义
- Spring XD 1.1 M2 and 1.0.3 released---support kafka
- Gmail邮件功能那么强大,GMail被封,在国内怎么用gmail收邮件?
- Html页面操作json串
- Baby Step Gaint Step
- Mac OS提示# 14:自己定义文件图标
- Hadoop之初体验
- 基于python的爬虫(一)
- C语言第一次博客作业---顺序机构基础练习
- 18-09-13 机器人和服务器之间的ip配置和脚本的重启
- Mysql 锁和锁算法
- nginx 正向代理上网
- 51Nod 1048 1383 整数分解为2的幂
- mysql之 xtrabackup-2.4.12 安装
- redis入门概述