[同系列文章]
1. 設計模式學習筆記(一)- -策略模式
2. 設計模式學習筆記(二)- -觀察者模式
3. 設計模式學習筆記(三)- –裝飾者模式
4. 設計模式學習筆記(四)- –工廠模式
5. 設計模式學習筆記(五)- –單件模式
又是嶄新的一日,今天我來學習命令模式~~~gogogo:)
看了一下書,好多頁呀哈哈哈,有得擼
將「請求」封裝成物件,以便使用不同的請求 、佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。書中的引子梳理:
物件村餐廳:
客人發出訂單請求,呼叫createorder()方法,女招待呼叫takeorder()方法拿走訂單,然後呼叫orderup()方法通知廚師做菜,廚師根據訂單呼叫具體的做菜方法,如make***()來烹飪,做好之後,呼叫output()方法出菜。
訂單:封裝準備餐點的請求createorder();
女招待:接受訂單takeorder();,呼叫orderup();
廚師:準備餐點,呼叫make***();
該餐廳的這些步驟,可以視作為乙個模型,該模型允許將「發出請求的物件」和「接受和執行這些請求的物件」分隔開來。
將餐廳的這些步驟變成命令模式
client客戶端:createcommandobject();execute();setcommand();
invoker 執行者:execute();
receiver接收者:action1(),action2();…..
配合圖看↓
類圖
相關例項**:
我又偷懶了,,見諒見諒
就是這麼簡單。
其他功能性的拓展, 建立乙個新的功能類並實現command就可以了。
應用場景:佇列請求、日誌請求……學完之後的感覺簡直美滋滋,perfect ε≡٩(๑>₃
設計模式學習筆記(六) 命令模式
定義 將 請求 封裝為物件,以便使用不同的請求,佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作 uml類圖 command 為所有的命令宣告了乙個介面,呼叫命令物件的execute方法即可讓接收者進行相關動作。concretecommand 定義了動作和接收者之間的繫結關係,呼叫者只需要呼...
設計模式學習(六)命令模式
將 請求 封裝成物件,以便使用不同的請求 佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。設計遙控器,分別裝有7組 開 與 關 按鈕來控制多個裝置,還需要支援整體的撤銷功能。1.首先,我們需要實現命令的介面 public inte ce command2.分別實現開燈 關燈 開關電風扇等命...
設計模式(六) 命令模式
命令模式 將請求封裝成物件,以便使用不同的請求 佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。public inte ce commandpublic class light public void off public class lightoncommand implements c...