(十七)命令模式

2022-09-12 15:54:36 字數 1105 閱讀 9556

目錄

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

命令模式,行為請求者和行為實現者之間的解耦合,支援命令的排隊、記錄和撤銷等動作。

#include #include #include class receiver

void action2()

};class command

;class concretecommanda :public command

void excute()override

private:

receiver* receiver;

};class concretecommandb :public command

void excute()override

private:

receiver* receiver;

};class invoker

void process()

}private:

std::vectorcommands;

};void client()

int main()

命令模式作用:

第一: 比較容易地設計乙個命令佇列;

第二: 在需要的情況下, 可以較容易地將命令記入日誌;

第三: 允許接收請求的一方決定是否要否決請求;

第四: 可以容易地實現對請求的撤銷和重做;

第五: 由於加進新的具體命令類不影響其他的類, 因此增加新的具體命令類很容易;

第六: 命令模式把請求乙個操作的物件與指導怎麼執行乙個操作的物件分割開.

敏捷開發原則告訴我們,不要為**新增基於猜測的、實際不需要的功能。

如果不清楚乙個系統是否需要命令模式,一般就不要急著去實現它,事實上,在需要的時候通過重構實現這個模式並不困難,只有在真正需要如撤銷、恢復等功能時,把原來的**重構為命令模式才有意義。

Jmeter(十七)命令列模式執行

在用jmeter做效能測試時,不能用gui模式,必須要用命令列模式執行,這在jmeter啟動時就提示了 命令 jmeter n t jmx file l results file 引數 引數含義 h幫助 n命令列模式 t指定jmx指令碼路徑,預設為 jmeter home bin目錄,如果指令碼在其...

設計模式(十七) 策略模式

一 商場收銀軟體 用簡單工廠實現 abstract class cashsuper class cashnormal extends cashsuper class cashrebate extends cashsuper override public double acceptcash doub...

Linux命令(十七) 關機命令

在 linux 系統下一些常用的關機 重啟命令有 shutdown halt reboot以及init,他們都可以達到重啟系統的目的,但每個命令的內部工作過程不同。shutdown 命令安全地將系統關機,在系統關機前使用 shutdown 命令,系統管理員會通知所有登入的使用者系統將要關閉,並且 l...