自已的邏輯圖
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...