23種設計模式 命令模式

2021-10-18 18:52:23 字數 788 閱讀 8618

在軟體構建過程中,「行為請求者"與"行為實現者"通常呈現一種"緊耦合」。但在某些場合-比如需要對行為進行"記錄、撤銷/重(undo/redo)、事務"等處理,這種無法抵禦變化的緊耦合是不合適的。

在這種情況下,如何將"行為請求者"與「行為實現者"解耦?將一組行為抽象為物件,可以實現二者之間的松耦合。

將乙個請求(行為)封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

#include

#include

#include

using

namespace std;

class

command

;class

concretecommand1

:public command

void

execute

() override

};class

concretecommand2

:public command

void

execute

() override

};class

macrocommand

:public command

void

execute

() override

}};int

main()

優點:降低了系統耦合度。新的命令可以很容易新增到系統中去。

缺點:使用命令模式可能會導致某些系統有過多的具體命令類。

23種設計模式之命令模式

定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下invoker類和r...

23種設計模式之 命令模式

定義 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。型別 行為類模式 類圖 命令模式的結構 顧名思義,命令模式就是對命令的封裝,首先來看一下命令模式類圖中的基本結構 以上三個類的作用應該是比較好理解的,下面我們重點說一下in...

設計模式 23種設計模式

一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...