1. 程式人生 > >淺談js設計模式之發布 — 命令模式

淺談js設計模式之發布 — 命令模式

刪除 常見 設計程序 體會 span 一個 發送 正在 是什麽

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

假設我們正在編寫一個用戶界面程序,該用戶界面上至少有數十個 Button 按鈕。因為項目
比較復雜,所以我們決定讓某個程序員負責繪制這些按鈕,而另外一些程序員則負責編寫點擊按
鈕後的具體行為,這些行為都將被封裝在對象裏。

var bindClick = function(button, func) {
    button.onclick = func;
};
var MenuBar = {
    refresh: 
function() { console.log(‘刷新菜單界面‘); } }; var SubMenu = { add: function() { console.log(‘增加子菜單‘); }, del: function() { console.log(‘刪除子菜單‘); } }; bindClick(button1, MenuBar.refresh); bindClick(button2, SubMenu.add); bindClick(button3, SubMenu.del);

設計模式的主題總是把不變的事物和變化的事物分離開來,命令模式也不例外。按下按鈕之
後會發生一些事情是不變的,而具體會發生什麽事情是可變的。通過 command 對象的幫助,將來
我們可以輕易地改變這種關聯,因此也可以在將來再次改變按鈕的行為。

淺談js設計模式之發布 — 命令模式