1 模式簡介
命令模式的定義:
命令模式將命令封裝成對象,從而使調用一個命令變爲調用一個對象的指定方法。
命令模式的優點:
1) 降低了系統耦合度;
2) 新的命令可以很容易的添加到系統中去。
命令模式的缺點:
會導致系統中有過多的具體命令類。
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】。