定義
命令模式:將「請求」封裝成物件,以便使用不同的請求、佇列或者日誌來引數化其他物件。命令模式也支援可撤銷的操作。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.分別實現開燈 關燈 開關電風扇等命...