【设计模式 - 14】之命令模式(Command)
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】。