js設計模式之命令模式

2021-08-17 14:41:13 字數 1220 閱讀 3721

命令模式就是將建立模組的邏輯封裝在乙個物件裡,這個物件提供乙個引數化的請求介面,通過呼叫這個介面並傳遞一些引數實現呼叫命令物件內部中的方法。

現在我們需要做乙個活動頁面,平鋪結構,比如每個預覽產品區域,有一行標題,標題下面是產品,只是數量和排列不同。

//模組實現模組

var viewcommand=(function

()"//>',

'', '

' ].join(''),

//展示標題結構模板

title:[

'','',

'','

', '

', '

' ].join('')}

//格式化字串快取字串

html='';

function

formatstring

(str,obj)/g,function

(match,key))

}//方法集合

var action=}},

display:function

(container,data,view)

}document.getelementbyid('container').innerhtml=html;

html='';

}//命令介面

return

function

excute

(msg)

})();

//產品展示資料

var productdata=[,,

,],var titledata=

//建立一張

viewcommand(,『product』]

})//建立多張

viewcommand()

另外乙個應用場景就是canvas繪圖命令

//實現物件

var canvascommand=(function

(), //填充矩形

fillrect:function

(x,y,w,h),

//移動畫筆

moveto:function

(x,y)……}

return else}}

}})();

canvascommand.excute([

,]);

JS設計模式 命令模式

命令模式 command pattern 是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。我們要做乙個簡單的編輯器,先來看看沒有使用命令模式的 忽略定義方法意義所在 class...

設計模式之命令設計模式

先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...

設計模式之命令模式

command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...