何為命令模式
定義:將請求封裝為一個對象,從而可用不同的請求對客戶進(jìn)行參數(shù)化,
對請求排隊或記錄請求日志,以及支持可撤銷的操作
靜態(tài)關(guān)系圖如下
命令模式
何時使用命令模式
1、想讓應(yīng)用程序支持撤銷與恢復(fù)
2、想用對象參數(shù)化一個動作以執(zhí)行操作,并用不同命令對象來代替回調(diào)函數(shù)
3、想要在不同時刻對請求進(jìn)行指定、排列和執(zhí)行
4、想記錄修改日志、這樣在系統(tǒng)故障時,這些修改可在后來重做一遍
5、想讓系統(tǒng)支持事務(wù),事務(wù)封裝了對數(shù)據(jù)的一系列修改。事務(wù)可以建模為命令對象
NSInvocation類的命令模式的新類圖
DrawScribbleCommand和相關(guān)類的類圖