行為型模式之二 命令模式

2021-07-06 06:21:54 字數 1621 閱讀 3702

命令模式(command pattern):將乙個請求封裝為乙個物件,從而使我們可用不同的請求對客戶進行引數化;對請求排隊或者記錄請求日誌,以及支援可撤銷的操作。命令模式是一種物件行為型模式。

命令模式的結構圖如下所示:

抽象命令類一般是乙個介面,在其中宣告了用於執行請求的excute()等方法,通過這些方法可以呼叫請求接收者的相關操作。

concretecommand

具體命令類是抽象命令類的子類,實現了在抽象命令類中宣告的方法,它對應具體的接收者物件,繫結接收者物件的動作。在實現exceute()方法時,將呼叫接收者物件的相關操作

invoker

呼叫者即請求的傳送者,它通過命令物件物件來執行請求。乙個呼叫者並不需要在設計時確定其接收者,因此它只與抽象命令類之間存在關聯關係。在程式執行時將呼叫具體命令物件的excute()方法,間接呼叫接收者的相關關係。

receiver

接收者執行與請求相關的操作,它具體實現對請求的業務處理。

電視機是請求的接收者,遙控器是請求的傳送者,遙控器上有一些按鈕,不同的按鈕對應於電視機的不同操作。抽象命令角色由乙個命令介面來扮演,有三個具體的命令類實現了抽象命令介面,這三個具體命令分別代表三種操作:開啟電視機,關閉電視機,切換頻道。顯然,電視機遙控器就是乙個典型的命令模式例項。

該例項類圖如下所示:

行為型模式 命令模式

liebrother原文 行為型模式 命令模式 十一大行為型模式之三 命令模式。姓名 命令模式 英文名 command pattern 價值觀 軍令如山 個人介紹 encapsulate a request as an object,thereby letting you parameterize ...

行為型模式 命令模式

liebrother原文 行為型模式 命令模式 十一大行為型模式之三 命令模式。姓名 命令模式 英文名 command pattern 價值觀 軍令如山 個人介紹 encapsulate a request as an object,thereby letting you parameterize ...

設計模式系列(行為型模式)之二 迭代器模式

迭代器 iterator 模式的定義 提供乙個物件來順序訪問聚合物件中的一系列資料,而不暴露聚合物件的內部表示。迭代器模式是一種物件行為型模式 優點訪問乙個聚合物件的內容而無須暴露它的內部表示。遍歷任務交由迭代器完成,這簡化了聚合類。它支援以不同方式遍歷乙個聚合,甚至可以自定義迭代器的子類以支援新的...