六 命令模式

2022-08-24 17:06:11 字數 960 閱讀 5126

定義

命令模式:將「請求」封裝成物件,以便使用不同的請求、佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。

uml圖

說明:命令模式中的undo

命令模式中的undo撤銷操作,invoker呼叫者中持有command undocommand 的變數,儲存上一次執行命令的command物件例項,client呼叫undo操作的時候,通過呼叫undocommand的undo()方法,進而指定該command例項注入的接收者執行對應的撤銷操作。從而完成undo操作。

命令模式巨集操作

client 中通過將一組命令進行繫結的操作,如生成command partyon = ;對應資料結構,從而完成對指定命令的command的執行過程。

命令模式的更過用途

個人理解

1、命令模式將發出請求的物件和執行請求的物件解耦。

2、在被解耦的兩者之間是通過命令物件進行溝通的。命令物件封裝了接收者和乙個或多個動作。

3、通過呼叫命令物件的execute()方法,發出請求,這會使得接收者的動作被呼叫。

4、呼叫者可以接收命令當做引數,甚至在執行時動態地進行。

5、命令模式可以支援撤銷操作,做法是實現乙個undo()方法來回到execute()被執行前的狀態。

6、巨集命令是命令的一種簡單的延伸,允許呼叫多個命令。巨集方法也可以支援撤銷操作。

7、實際操作過程中,很常見的用「聰明」命令物件,也就是直接實現了請求,而不是將工作委託給接受者。

8、命令模式可以用來實現日誌和事務請求。

設計模式(六) 命令模式

命令模式 將請求封裝成物件,以便使用不同的請求 佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。public inte ce commandpublic class light public void off public class lightoncommand implements c...

java設計模式(六) 命令模式

命令模式 將 請求 封裝成物件,以便使用不同的請求,佇列或者日誌來引數化其他物件,命令模式也支援可撤銷的操作。1,定義命令介面 package com.pattern.command public inte ce command 2,介面的實現類 package com.pattern.comman...

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

將 請求 封裝成物件,以便使用不同的請求 佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。設計遙控器,分別裝有7組 開 與 關 按鈕來控制多個裝置,還需要支援整體的撤銷功能。1.首先,我們需要實現命令的介面 public inte ce command2.分別實現開燈 關燈 開關電風扇等命...