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