前端設計模式 命令模式

命令模式:執行命令時,發佈者和執行者分開(好比老闆和服務員,老闆說誰誰誰去幹什麼,而後服務員就去幹了,這適合人比較少,一吆喝就都知道了。若是是上千人,這樣就不合適了,這個時候須要發佈者和執行者分開)。中間加入命令對象,做爲中轉站。

 

好比戰爭片中,將軍傳遞命令
class Receiver {
    exec() {
        console.log('執行');
    }
}

class Command {
    constructor(receiver) {
        this.receiver = receiver;
    }
    cmd() {
        console.log('觸發命令');
        this.receiver.exec();
    }
}

class Invoker {
    constructor(command) {
        this.command = command;
    }
    invoke() {
        console.log('開始');
        this.command.cmd();
    }
}

// 士兵
let soldier = new Receiver();

// 小號手
let trumpeter = new Command(soldier);

// 將軍
let general = new Invoker(trumpeter);
general.invoke();

 

設計原則驗證
命令對象於執行對象分開,解耦
符合開放封閉原則
相關文章
相關標籤/搜索