五分鐘學(xué)完設(shè)計(jì)模式之命令模式

命令模式

總結(jié)成一句話就是行為的請(qǐng)求者和行為的實(shí)現(xiàn)者分離開,把"命令"以對(duì)象形式將兩者聯(lián)系起來的模式。命令模式的優(yōu)點(diǎn)是將調(diào)用者和執(zhí)行者在代碼中拆分開, 請(qǐng)求者不直接與接收者(執(zhí)行者)交互, 即請(qǐng)求者不包含接收者的引用, 因此徹底消除了彼此之間的耦合同時(shí)將代碼拆分出來不會(huì)讓代碼有壞代碼的味道。達(dá)到解耦和方便擴(kuò)展的功能。使用命令模式的場(chǎng)合有undo、redo以及用戶的輸入操作、游戲的死亡回放功能

命令模式需要幾個(gè)組成部分

1.命令接口(ICommand)

2.各個(gè)命令對(duì)象(xxxCommand)

3.執(zhí)行者(Reciver)

4.請(qǐng)求者(Invoker)

以下是代碼截圖


命令接口



redo命令



undo命令



Add命令



執(zhí)行者



Invoker--調(diào)用者


使用順序


另外我們還可以根據(jù)需求把Command的對(duì)象裝載到Invoker的容器中,逐一執(zhí)行,類似的游戲例如sim4(模擬人生),玩家給人物下達(dá)命令,人物都是一執(zhí)行命令一個(gè)才去執(zhí)行下一個(gè)命令,代碼如下圖


命令集合的Invoker
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容