命令模式
命令模式(Command Pattern)是一種數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)模式葛菇,它屬于行為型模式周循。請求以命令的形式包裹在對象中,并傳給調(diào)用對象。調(diào)用對象尋找可以處理該命令的合適的對象椎侠,并把該命令傳給相應(yīng)的對象株灸,該對象執(zhí)行命令。
維基上的解釋:它嘗試以對象來代表實(shí)際行動(dòng)。命令對象可以把行動(dòng)(action) 及其參數(shù)封裝起來洛口,于是這些行動(dòng)可以被:
- 重復(fù)多次
- 取消(如果該對象有實(shí)現(xiàn)的話)
- 取消后又再重做
這些都是現(xiàn)代大型應(yīng)用程序所必須的功能,即“撤銷”及“重復(fù)”凯沪。
除此之外第焰,可以用命令模式來實(shí)現(xiàn)的功能例子還有: - 交易行為
- 進(jìn)度列
- 向?qū)?/li>
- 用戶界面按鈕及功能表項(xiàng)目
- 線程 pool
- 宏收錄
優(yōu)點(diǎn)
- 降低了系統(tǒng)耦合度。
- 新的命令可以很容易添加到系統(tǒng)中去妨马。
缺點(diǎn)
使用命令模式可能會(huì)導(dǎo)致某些系統(tǒng)有過多的具體命令類挺举。
個(gè)人理解
通過類的方法將執(zhí)行的邏輯封裝在方法中,這個(gè)類叫接收類身笤,方法就是執(zhí)行具體邏輯的方法豹悬,然后定義一個(gè)命令接口,有一個(gè)execute方法液荸。命令的實(shí)現(xiàn)類瞻佛,將接收類作為execute方法的入?yún)ⅲ椒▋?nèi)容就是接收類調(diào)用自己的執(zhí)行邏輯的方法娇钱,這個(gè)執(zhí)行邏輯的方法與該命令類的含義相同(比如伤柄,開燈命令類,實(shí)現(xiàn)的execute方法里就是接收類調(diào)用開燈方法)文搂。最后就是調(diào)用類适刀,定義一個(gè)命令接口為入?yún)⒌姆椒ǎ瑑?nèi)容是命令接口調(diào)用execute方法煤蹭。