設計模式學習筆記(六)- --命令模式

[同系列文章]
1. 設計模式學習筆記(一)- -策略模式
2. 設計模式學習筆記(二)- -觀察者模式
3. 設計模式學習筆記(三)- –裝飾者模式
4. 設計模式學習筆記(四)- –工廠模式
5. 設計模式學習筆記(五)- –單件模式


又是嶄新的一日,今天我來學習命令模式~~~GoGoGo:)
看了一下書,好多頁呀哈哈哈,有得擼


命令模式

將“請求”封裝成對象,以便使用不同的請求 、隊列或者日誌來參數化其他對象。命令模式也支持可撤銷的操作。

書中的引子梳理:

對象村餐廳:
客人發出訂單請求,調用createOrder()方法,女招待調用takeOrder()方法拿走訂單,然後調用orderUp()方法通知廚師做菜,廚師根據訂單調用具體的做菜方法,如makeXXX()來烹飪,做好之後,調用outPut()方法出菜。
訂單:封裝準備餐點的請求createOrder();
女招待:接受訂單takeOrder();,調用orderUp();
廚師:準備餐點,調用makeXXX();

該餐廳的這些步驟,可以視作爲一個模型,該模型允許將“發出請求的對象”和“接受和執行這些請求的對象”分隔開來。

將餐廳的這些步驟變成命令模式

Client客戶端:createCommandObject();execute();setCommand();
Invoker 執行者:execute();
Receiver接收者:action1(),action2();…..
配合圖看↓
這裏寫圖片描述

重點來了↓

類圖

這裏寫圖片描述

相關實例代碼:
我又偷懶了,,見諒見諒
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

就是這麼簡單。

其他功能性的拓展, 創建一個新的功能類並實現Command就可以了。

應用場景:隊列請求、日誌請求……學完之後的感覺簡直美滋滋,Perfect ε≡٩(๑>₃<)۶ 一心向學

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章