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】

最新文章

  1. BZOJ 2154: Crash的数字表格 [莫比乌斯反演]
  2. Linux crontab 定时任务详解
  3. calc 多项式计算 (STL版和非STL版) -SilverN
  4. 武林[HDU1107]
  5. apache性能优化
  6. C++11右值引用,移动主义
  7. Spring XD 1.1 M2 and 1.0.3 released---support kafka
  8. Gmail邮件功能那么强大,GMail被封,在国内怎么用gmail收邮件?
  9. Html页面操作json串
  10. Baby Step Gaint Step
  11. Mac OS提示# 14:自己定义文件图标
  12. Hadoop之初体验
  13. 基于python的爬虫(一)
  14. C语言第一次博客作业---顺序机构基础练习
  15. 18-09-13 机器人和服务器之间的ip配置和脚本的重启
  16. Mysql 锁和锁算法
  17. nginx 正向代理上网
  18. 51Nod 1048 1383 整数分解为2的幂
  19. mysql之 xtrabackup-2.4.12 安装
  20. redis入门概述

热门文章

  1. 获得SQLSERVER的表字段等架构信息
  2. 获取数据后导出Excel
  3. PHP实现简易的模板引擎
  4. 实现Word的列表样式
  5. ios8新特性widget开发-b
  6. OpenCV for c++Builder
  7. BZOJ 4013 实验比较
  8. 在debug模式下运行不报错,换到release模式下报找不到某某库或文件的错。。解决办法
  9. android的原理,为什么不需要手动关闭程序
  10. 监控 DNS 流量,预防安全隐患五大招!