C 命令模式

2021-07-06 05:25:17 字數 1796 閱讀 3128

自已的邏輯圖

1.所謂命令模式就是將物件a所具有的action分別抽象成command,即命令的物件化

例如:物件燈泡有兩個動作

turnon

turnoff

2.為了讓這兩個action可以執行,也就是從燈泡分離開,我們建立乙個抽象的類command

#ifndef command_h_

#define command_h_

class command ;

#endif /* command_h_ */

應注意的是該物件有個抽象的方法,execute

這個execute可以執行燈泡的方法,可能是

turnon或者是turnoff,具體的就讓他的實現類去實現

3.實現command

物件燈泡turnoff的command

/*

* flipdowncommand.h

* * created on: 2023年10月27日

* author: administrator

*/#ifndef flipdowncommand_h_

#define flipdowncommand_h_

#include "command.h"

#include "light.h"

class flipdowncommand: public command

virtual void execute();

virtual ~flipdowncommand();

private:

light& thelight;

};#endif /* flipdowncommand_h_ */

物件燈泡turnon的command

/*

* flipdowncommand.h

* * created on: 2023年10月27日

* author: administrator

*/#ifndef flipdowncommand_h_

#define flipdowncommand_h_

#include "command.h"

#include "light.h"

class flipdowncommand: public command

virtual void execute();

virtual ~flipdowncommand();

private:

light& thelight;

};#endif /* flipdowncommand_h_ */

這兩個command的excute各自執行light對應的turnoff和turnon方法

4.接著我們新建乙個執行這兩個命令的類

/*

* switch.cpp

* * created on: 2023年10月27日

* author: administrator

*/#include "switch.h"

switch::~switch()

void switch::flipup()

void switch::flipdown()

c 命令模式

命令模式的設計 關鍵是將乙個請求封裝到乙個command的類中,在提供處理物件receiver 最後command命令有invoke啟用 class receive public void execute class command private receive m re public virtu...

命令模式 C

命令模式將傳送者與接收者解耦,如開關1 電燈,開關2 電腦,開關3 其他電器,它將乙個請求封裝成乙個物件,可以讓你用不同的請求對客戶進行引數化。命令模式包含四種角色 1.command 抽象命令類 2.concretecommand 具體命令類 3.invoker 呼叫者 4.receiver 接收...

C 設計模式 命令模式

命令模式 command 將乙個請求封裝為乙個物件,從而使你可以不同的請求對客戶進行引數化 對請求排隊或記錄請求日誌,以及支援可撤銷的操作。命令模式結構圖 command類,用來宣告執行操作的介面。class command protected receiver receiver public co...