命令模式
總結成一句話就是行為的請求者和行為的實現(xiàn)者分離開胸嘁,把"命令"以對象形式將兩者聯(lián)系起來的模式。命令模式的優(yōu)點是將調用者和執(zhí)行者在代碼中拆分開与纽, 請求者不直接與接收者(執(zhí)行者)交互, 即請求者不包含接收者的引用, 因此徹底消除了彼此之間的耦合同時將代碼拆分出來不會讓代碼有壞代碼的味道酬姆。達到解耦和方便擴展的功能。使用命令模式的場合有undo曙搬、redo以及用戶的輸入操作、游戲的死亡回放功能
命令模式需要幾個組成部分
1.命令接口(ICommand)
2.各個命令對象(xxxCommand)
3.執(zhí)行者(Reciver)
4.請求者(Invoker)
以下是代碼截圖
命令接口
redo命令
undo命令
Add命令
執(zhí)行者
Invoker--調用者
使用順序
另外我們還可以根據(jù)需求把Command的對象裝載到Invoker的容器中鸽嫂,逐一執(zhí)行纵装,類似的游戲例如sim4(模擬人生),玩家給人物下達命令据某,人物都是一執(zhí)行命令一個才去執(zhí)行下一個命令橡娄,代碼如下圖
命令集合的Invoker