設(shè)計(jì)模式-命令模式《二十》

何為命令模式

定義:將請(qǐng)求封裝為一個(gè)對(duì)象,從而可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化,
對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作

靜態(tài)關(guān)系圖如下

命令模式

何時(shí)使用命令模式

1、想讓應(yīng)用程序支持撤銷與恢復(fù)
2、想用對(duì)象參數(shù)化一個(gè)動(dòng)作以執(zhí)行操作,并用不同命令對(duì)象來代替回調(diào)函數(shù)
3、想要在不同時(shí)刻對(duì)請(qǐng)求進(jìn)行指定、排列和執(zhí)行
4、想記錄修改日志、這樣在系統(tǒng)故障時(shí),這些修改可在后來重做一遍
5、想讓系統(tǒng)支持事務(wù),事務(wù)封裝了對(duì)數(shù)據(jù)的一系列修改。事務(wù)可以建模為命令對(duì)象

NSInvocation類的命令模式的新類圖
DrawScribbleCommand和相關(guān)類的類圖

Objective-C項(xiàng)目地址

?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 目錄 本文的結(jié)構(gòu)如下: 什么是命令模式 為什么要用該模式 模式的結(jié)構(gòu) 代碼示例 優(yōu)點(diǎn)和缺點(diǎn) 適用環(huán)境 模式應(yīng)用 總...
    w1992wishes閱讀 1,239評(píng)論 2 9
  • 【學(xué)習(xí)難度:★★★☆☆,使用頻率:★★★★☆】直接出處:命令模式梳理和學(xué)習(xí):https://github.com/...
    BruceOuyang閱讀 927評(píng)論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,662評(píng)論 1 32
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,972評(píng)論 0 9
  • 在森林的最深處有一棵古老的大樹,葉綠繁茂,枝臂張揚(yáng),伸爪,能遮天蔽日。 奇怪的卻是大樹上沒有棲息任何一種小動(dòng)物,但...
    菩提子的葉閱讀 785評(píng)論 8 12

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