## 一、命令
將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,以及支持可撤銷的操作。
命令模式聯系生活,結合面向對象思想,最起碼應該有四個類,命令發出者,命令傳遞命令接收者,還有命令本身。
或許有的人會說,命令傳遞者有點多余,多余嗎?
為什么要加命令傳遞者?命令傳遞者可不僅是用來傳遞命令哦!
先從生活中抽象出一個例子:飯店服務員就好是模式中的命令傳遞者。
試想,飯店里沒有服務員會怎么樣?
顧客要跟廚師直接下訂單。不論是菜做好了還是某一樣菜沒有,廚師都得找到具體顧客,一個顧客可以,顧客多了怎么辦?廚師記得清楚嗎?恐怕他自己做菜都忙不過來,那還記得是誰點的菜!到這還沒有完,顧客要修改訂單,想換菜,廚師這下頭大了,是哪桌的菜啊,哪桌要換啊,哪桌先來的啊,哪個桌的菜沒有了呀……
飯店服務員的任務是什么?
1、整理顧客的訂單——增加,刪除,修改。由于顧客或者飯店原因可能有事需要對訂單進行修改,刪除,這都是服務員任務。
2、記錄訂單的順序
3、把整理好的訂單傳給廚師。
這樣,他只需要按照服務員給他的訂單先后做菜就Ok了,其間有什么變化,也是服務員來管理訂單。要是沒有那樣菜,他也只需通過服務員傳遞給顧客,及時調換。
看來命令模式中,命令傳遞者是必不可少了。
剩下命令發出者,接受者,都各司其職,系統就運轉起來了。
## 二、類圖

- 前言
- 抽象工廠——創建型設計模式一
- 工廠三姐妹——創建型設計模式之二
- 初識面向對象設計模式
- 建造者模式——創建型模式之三
- 原型模式——創建型設計模式四
- 適配器 and 組合模式——結構性模式之一
- 橋接模式——結構性設計模式之二
- 組合模式——結構型設計模式之三
- 裝飾模式——結構型設計模式之四
- 外觀模式——結構型設計模式之五
- 代理模式——結構型設計模式之六
- 觀察者模式——行為型設計模式之五
- 模板設計——行為設計模式之一
- 命令模式——行為設計模式之二
- 狀態模式——行為型設計模式之三
- 職責模式——行為設計模式之四
- 中介模式——行為模式之六
- 策略+簡單工廠 實戰篇
- 看觀察者怎么全方位觀察機房收費系統
- 登陸也需要裝飾——機房收費系統裝飾模式實戰
- 何為抽象?你有本末倒置嗎?
- 再回首,策略、簡單工廠是否依然?
- 再回首——行為型設計模式