Java設計模式菜鳥系列 七 命令模式建模與實現

2021-08-27 19:26:58 字數 1084 閱讀 8863

命令模式(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()

}/**

* 客戶端測試類

* * @author leo

*/public class test

}菜館點餐、遙控器、佇列請求、日誌請求。

從上面的示例可以看到:命令模式將「動作的請求者」從「動作的執行者」物件中解耦出來,這就是將方法的呼叫封裝起來的好處。

Java設計模式菜鳥系列 七 命令模式建模與實現

命令模式 command 將 請求 命令 口令 封裝成乙個物件,以便使用不同的請求 佇列或者日誌來引數化其物件。命令模式也支援撤銷操作。命令模式的目的就是達到命令的發出者和執行者之間解耦,實現請求和執行分開。演示樣例 以咱去餐館吃飯為例,分為3步 1 和小二說,來個宮保雞丁 顧客發出口令 2 小二來...

JAVA系列 設計模式 命令模式

定義 將來自客戶端的請求傳入乙個物件,無需了解這個請求啟用的 動作或有關接受這個請求的處理細節。這是一種兩台機器之間通訊聯絡性質的模式,類似傳統過程語 言的 callback功能。優點 解耦了傳送者和接受者之間聯絡。傳送者呼叫乙個操作,接受者接受請求執行相應的動作,因為使用command模式解耦,傳...

Java設計模式菜鳥系列 十二 組合模式建模與實現

組合模式 composite 組合模式有時又叫部分 整體模式,將物件組合成樹形結構來表示 部分 整體 層次結構。組合模式在處理樹形結構的問題時比較方便。示例 組合模式有時也稱 整合 部分 模式 組合模式在處理樹形結構的問題時比較方便 節點 class treenode 對相關屬性進行封裝 publi...