命令模式

23種創(chuàng)新模式總署
父文鏈接

感覺像無序廣播,oc的通知

命令模式很好理解,舉個例子,司令員下令讓士兵去干件事情,從整個事情的角度來考慮,司令員的作用是,發(fā)出口令,口令經(jīng)過傳遞,傳到了士兵耳朵里,士兵去執(zhí)行。這個過程好在,三者相互解耦,任何一方都不用去依賴其他人,只需要做好自己的事兒就行,司令員要的是結(jié)果,不會去關(guān)注到底士兵是怎么實現(xiàn)的

Invoker是調(diào)用者(司令員),Receiver是被調(diào)用者(士兵),MyCommand是命令,實現(xiàn)了Command接口,持有接收對象,看實現(xiàn)代碼:
//命令(需要知道穿給誰)

public interface Command {  
    public void exe();  
} 
public class MyCommand implements Command {  
  
    private Receiver receiver;  
      
    public MyCommand(Receiver receiver) {  
        this.receiver = receiver;  
    }  
  
    @Override  
    public void exe() {  
        receiver.action();  
    }  
} 

//調(diào)用者(司令員,需要知道命令是啥)

public class Invoker {  
      
    private Command command;  
      
    public Invoker(Command command) {  
        this.command = command;  
    }  
  
    public void action(){  
        command.exe();  
    }  
} 

//被調(diào)用者(士兵,啥都不需要知道)

public class Receiver {  
    public void action(){  
        System.out.println("command received!");  
    }  
}

使用

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();  //發(fā)送命令
    }  
}

綜上:司令員拿著命令,然后發(fā)出去,命令自己去尋找士兵,
士兵看到后工作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容