Javascript設計模式之命令模式

擼狗吸貓發表於2019-04-20

前言:菜雞也有夢想,而我的夢想就是進一個真正的網際網路大廠。以前學習的時候沒有系統的整理,從今天開始要保持每週寫部落格的習慣,希望自己可以有所成長。為了培養程式設計思維,決定從設計模式開始寫起。我是通過讀《Javascript設計模式與開發實踐》來學習設計模式,並且將知識點和收穫記錄在部落格中。

此文僅記錄本人閱讀《JavaScript設計模式與開發實踐》的知識點與想法,感謝作者曾探大大寫出這麼好的一本書。如有冒犯,請聯絡本人:markcoder@outlook.com處理,請大家購買正版書籍。

1.命令模式介紹

命令模式最常見的應用場景是:有時候需要向某些物件傳送請求,但是並不知道請求的接收者是誰,也不知道被請求的操作是什麼。此時希望用一種鬆耦合的方式來設計程式,使得請求傳送者和請求接收者能夠消除彼此之間的耦合關係。

2.程式碼實現

setCommand方法為按鈕指定了命令物件,命令物件為呼叫者(按鈕)找到了接收者(btnFunc),並且執行了相關操作,而按鈕本身並不需要關心接收者和接受操作。

let setCommand = (button, command) => {
    button.onclick = () => {
        command.execute();
    }
}

let btnFunc = {
    refresh () {
        console.log('點選按鈕重新整理頁面');
    }
}

let RefreshCommand = (receiver) => {
    return {
        execute () {
            receiver.refresh();
        }
    }
}

let refreshCommand = RefreshCommand(btnFunc);
let button = document.querySelector("button");
setCommand(button, refreshCommand);

複製程式碼

相關文章