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

2021-08-14 01:29:19 字數 1355 閱讀 7878

[同系列文章]

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...