命令模式(command):將「請求」(命令/口令)封裝成乙個物件,以便使用不同的請求、佇列或者日誌來引數化其物件。
命令模式也支援撤銷操作。命令模式的目的就是達到命令的發出者和執行者之間解耦,實現請求和執行分開。
* 演示樣例:以咱去餐館吃飯為例,分為3步
* * 1、和小二說,來個宮保雞丁 --> 顧客發出口令
* * 2、小二來了一句:宮保雞丁乙份。 這時命令被傳遞到了廚師。--> 口令傳遞到了廚師
* * 3、然後廚師就開始做宮保雞丁去了。
--> 廚師依據口令去執行 * * 從這3步能夠看到,宮保雞丁並非我想吃就我來做,而是傳達給別人去做。 * * 我要的是乙個結果——宮保雞丁這道菜做好了。而我無需去關係這道菜是怎麼去做的。
*/ inte***ce command /** * 口令 -- 經小二傳遞 */ class ordercommand implements command @override public void execute() @override public void undo() } /** * 廚師--真正的口令執行者 */ class cookreceiver public void uncooking() } /** * 顧客--真正的口令發出者 */ class customer /** * 將命令的發出與執行分開 */ public void order() public void unorder() } /** * client測試類 * * @author leo */ public class test }
菜館點餐、遙控器、佇列請求、日誌請求。
從上面的演示樣例能夠看到:命令模式將「動作的請求者」從「動作的執行者」物件中解耦出來。這就是將方法的呼叫封裝起來的優點。
Java設計模式菜鳥系列 七 命令模式建模與實現
命令模式 command 將 請求 命令 口令 封裝成乙個物件,以便使用不同的請求 佇列或者日誌來引數化其物件。命令模式也支援撤銷操作。命令模式的目的就是達到命令的發出者和執行者之間解耦,實現請求和執行分開。示例 以咱去餐館吃飯為例,分為3步 1 和小二說,來個宮保雞丁 顧客發出口令 2 小二來了一...
JAVA系列 設計模式 命令模式
定義 將來自客戶端的請求傳入乙個物件,無需了解這個請求啟用的 動作或有關接受這個請求的處理細節。這是一種兩台機器之間通訊聯絡性質的模式,類似傳統過程語 言的 callback功能。優點 解耦了傳送者和接受者之間聯絡。傳送者呼叫乙個操作,接受者接受請求執行相應的動作,因為使用command模式解耦,傳...
Java設計模式菜鳥系列 十二 組合模式建模與實現
組合模式 composite 組合模式有時又叫部分 整體模式,將物件組合成樹形結構來表示 部分 整體 層次結構。組合模式在處理樹形結構的問題時比較方便。示例 組合模式有時也稱 整合 部分 模式 組合模式在處理樹形結構的問題時比較方便 節點 class treenode 對相關屬性進行封裝 publi...