設計模式——18命令模式(Command)
18、命令模式(Command)
命令模式很好理解,舉個例子,司令員下令讓士兵去幹件事情,從整個事情的角度來考慮,司令員的作用是,發出口令,口令經過傳遞,傳到了士兵耳朵裡,士兵去執行。這個過程好在,三者相互解耦,任何一方都不用去依賴其他人,只需要做好自己的事兒就行,司令員要的是結果,不會去關注到底士兵是怎麼實現的。
Invoker是呼叫者(司令員),Receiver是被呼叫者(士兵),MyCommand是命令,實現了Command介面,持有接收物件,看實現程式碼:
[java] view plaincopy
- public interface Command {
- public void exe();
- }
[java] view plaincopy - public class MyCommand implements Command {
- private Receiver receiver;
- public MyCommand(Receiver receiver) {
- this.receiver = receiver;
- }
- @Override
- public void exe() {
- receiver.action();
- }
- }
[java] view plaincopy - public class Receiver {
- public void action(){
- System.out.println(“command received!”);
- }
- }
[java] view plaincopy - public class Invoker {
- private Command command;
- public Invoker(Command command) {
- this.command = command;
- }
- public void action(){
- command.exe();
- }
- }
[java] view plaincopy - public class Test {
- public static void main(String[] args) {
- Receiver receiver = new Receiver();
- Command cmd = new MyCommand(receiver);
- Invoker invoker = new Invoker(cmd);
- invoker.action();
- }
- }
輸出:command received!
這個很哈理解,命令模式的目的就是達到命令的發出者和執行者之間解耦,實現請求和執行分開,熟悉Struts的同學應該知道,Struts其實就是一種將請求和呈現分離的技術,其中必然涉及命令模式的思想!
相關文章
- 設計模式-命令模式(Command)設計模式
- Java設計模式(22)命令模式(Command模式)Java設計模式
- C++設計模式——命令模式(command pattern)C++設計模式
- 設計模式--命令模式Command(行為型)設計模式
- C#設計模式系列:命令模式(Command)C#設計模式
- JAVA設計模式之 命令模式【Command Pattern】Java設計模式
- 4/24 設計模式之命令設計模式 Command Pattern設計模式
- 設計模式的征途—19.命令(Command)模式設計模式
- 設計模式:命令模式(Command Pattern)及例項設計模式
- 【圖解設計模式系列】The Command Pattern: 命令列模式圖解設計模式命令列
- 命令模式與go-redis command設計模式GoRedis
- 設計模式--命令模式設計模式
- 命令模式(Command Pattern)。模式
- js設計模式–命令模式JS設計模式
- Java設計模式——命令模式Java設計模式
- js設計模式--命令模式JS設計模式
- 設計模式(五):命令模式設計模式
- 設計模式之-命令模式設計模式
- 設計模式之命令模式設計模式
- 設計模式系列 6– 命令模式設計模式
- Python 設計模式-命令模式Python設計模式
- JavaScript設計模式(七):命令模式JavaScript設計模式
- 簡說設計模式——命令模式設計模式
- Javascript設計模式之命令模式JavaScript設計模式
- Java設計模式(16)----------命令模式Java設計模式
- 設計模式實戰 - 命令模式設計模式
- 極簡設計模式-命令模式設計模式
- GoLang設計模式08 - 命令模式Golang設計模式
- Python設計模式-命令模式Python設計模式
- JAVA設計模式之命令模式Java設計模式
- 大話設計模式—命令模式設計模式
- 使用C# (.NET Core) 實現命令設計模式 (Command Pattern)C#設計模式
- 命令模式 :Command(轉自LoveCherry)模式
- fastadmin命令列模式--commandAST命令列模式
- JAVA設計模式之 13.命令設計模式Java設計模式
- C++ 設計模式之命令模式C++設計模式
- 設計模式漫談之命令模式設計模式
- javascript設計模式 之 6 命令模式JavaScript設計模式