【設計模式】命令模式

設計模式:命令模式

定義:“請求”封裝成對象脊框,以便使用不同的請求壕曼,隊列或者日志來參數化其他對象,命令模式也支持可撤銷的操作。
命令模式通過在特定的接收者上綁定一組動作來封裝一個請求仇穗,這個對象只會暴露一個execute方法,當次方法被調用的時候戚绕,接收者就會進行這些動作纹坐。
命令模式的設計支持請求調用者和請求接收者之間的解耦。

命令模式的更多用途:隊列請求
命令模式可以將運算塊打包(一個接收者和一組動作)舞丛,然后將它傳來傳去耘子,就像是一般的對象一樣果漾。
想象有一個工作隊列:你在某一端添加命令,然后另一端則是線程谷誓。線程進行下面的動作:從隊列中取出一個命令绒障,然后調用execute()方法,等待這個調用完成捍歪,然后將此命令對象丟掉户辱,再取出下一個命令。糙臼。焕妙。。

命令模式的更多用途:日志請求
某些應用需要我們將所有的動作的記錄在日志中弓摘,并能在系統(tǒng)死機之后焚鹊,重新調用這些動作回復到之前的狀態(tài)。通過新增兩個方法(store()和load())韧献,命令能夠實現(xiàn)這一點末患,在Java中我們可以利用對象序列化實現(xiàn)這些方法,但是一般認為序列化最好還是只用在對象的持久化上锤窑。
對更高級的應用而言璧针,這些技巧可以擴展到應用事物處理中,也就是說一整群操作必須全部進行完成渊啰,或者沒有進行任何操作探橱。


要點

  • 命令模式將發(fā)出請求的對象和執(zhí)行請求的對象解耦
  • 在被解耦的兩者之間是通過命令對象進行溝通的,命令對象封裝了接收者和一個或一組動作
  • 調用者通過調用命令對象的execute()發(fā)出請求绘证,這回使得接受者的動作被調用
    *調用者可以接受命令當做參數隧膏,甚至可以在運行時動態(tài)的進行
  • 命令模式可以支持撤銷,做法是實現(xiàn)一個undo()方法來 回調到execute()被執(zhí)行前的狀態(tài)
  • 宏命令是命令的一種簡單的延伸嚷那,允許調用多個命令胞枕。宏方法也可以支持撤銷
  • 實際操作時,很常見使用“聰明”命令對象魏宽,也就是直接實現(xiàn)了請求腐泻,而不是將工作委托給接收者
  • 命令也可以用來實現(xiàn)日志和事物系統(tǒng)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市队询,隨后出現(xiàn)的幾起案子派桩,更是在濱河造成了極大的恐慌,老刑警劉巖蚌斩,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铆惑,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機鸭津,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門彤侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逆趋,你說我怎么就攤上這事盏阶。” “怎么了闻书?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵名斟,是天一觀的道長。 經常有香客問我魄眉,道長砰盐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任坑律,我火速辦了婚禮岩梳,結果婚禮上,老公的妹妹穿的比我還像新娘晃择。我一直安慰自己冀值,他們只是感情好,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布宫屠。 她就那樣靜靜地躺著列疗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浪蹂。 梳的紋絲不亂的頭發(fā)上抵栈,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音坤次,去河邊找鬼古劲。 笑死,一個胖子當著我的面吹牛浙踢,可吹牛的內容都是我干的绢慢。 我是一名探鬼主播灿渴,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼洛波,長吁一口氣:“原來是場噩夢啊……” “哼豌研!你這毒婦竟也來了回怜?” 一聲冷哼從身側響起彬碱,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤橄镜,失蹤者是張志新(化名)和其女友劉穎被饿,沒想到半個月后岗屏,有當地人在樹林里發(fā)現(xiàn)了一具尸體禽捆,經...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡藐石,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吨悍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扫茅。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖育瓜,靈堂內的尸體忽然破棺而出葫隙,到底是詐尸還是另有隱情,我是刑警寧澤躏仇,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布恋脚,位于F島的核電站,受9級特大地震影響焰手,放射性物質發(fā)生泄漏糟描。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一书妻、第九天 我趴在偏房一處隱蔽的房頂上張望船响。 院中可真熱鬧,春花似錦躲履、人聲如沸灿意。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缤剧。三九已至,卻和暖如春域慷,著一層夾襖步出監(jiān)牢的瞬間荒辕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工犹褒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抵窒,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓叠骑,卻偏偏與公主長得像李皇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宙枷,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內容