命令模式將請(qǐng)求封裝成對(duì)象,以便使用不同的請(qǐng)求、隊(duì)列、或者日志來參數(shù)化其他對(duì)象。命令模式也支持可撤銷的操作。

Command Pattern類圖
- 命令模式將發(fā)出請(qǐng)求的對(duì)象和執(zhí)行請(qǐng)求的對(duì)象解耦。
- 兩者間是通過命令對(duì)象進(jìn)行溝通的。命令對(duì)象封裝了接收者的一個(gè)或者一組動(dòng)作。
- 命令對(duì)象持有接收者對(duì)象的引用。
- 調(diào)用者通過調(diào)用命令對(duì)象的execute()方法發(fā)出請(qǐng)求,使得接收者的動(dòng)作被調(diào)用。
- 命令可以支持撤銷,具體做法為接收者對(duì)象實(shí)現(xiàn)undo()方法回撤狀態(tài)。
- 宏命令持有一個(gè)命令集,實(shí)現(xiàn)調(diào)用多個(gè)命令。
- 命令也可以用來實(shí)現(xiàn)日志和事務(wù)系統(tǒng),通過undo()方法實(shí)現(xiàn)食物回滾。