命令模式
總結(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