設計模式 命令模式

2021-07-05 08:44:03 字數 1673 閱讀 1314

命令模式:把命令、請求封裝成物件,以便使用不同的請求佇列或日誌來引數化其他物件。命令模式也支援可撤銷的操作。簡單的來說就是把物件之間的通訊行為封裝成類的模式,封裝後可以把發出命令的物件和執行命令的物件解耦。並且把命令例項化後可以撤銷,延時,排序等操作。

討論模型:蝙蝠俠(batman)是控制者(controller),他對燈發出命令(command)控制燈的亮和滅;

燈light類:

#ifndef __________light_h

#define __________light_h

#include

class

light

void lightoff()

};#endif

command基類:

#ifndef __________command_h

#define __________command_h

class command ;

#endif

繼承自command的lightoncommand

#ifndef __________lightoncommand_h

#define __________lightoncommand_h

#include "command.h"

#include "light.h"

class lightoncommand : public command

void execute()

};#endif

lightoffcommand:

#ifndef __________lightoffcommand_h

#define __________lightoffcommand_h

#include

#include "command.h"

#include "light.h"

class

lightoffcommand : public

command

void execute()

};#endif

控制者controller:

#ifndef __________controller_h

#define __________controller_h

#include "command.h"

class

controller

void control()

};#endif

#include 

#include "light.h"

#include "lightoncommand.h"

#include "lightoffcommand.h"

#include "controller.h"

int main(int argc, const

char * argv)

輸出:light on

light off

從上的例子可以看出命令模式把以前的控制者->執行者模式改為控制者->命令->執行者。把命令例項化,這樣可以把命令儲存起來,甚至可以做排序、撤銷等操作。並可以實現執行與控制的解耦,是面對介面程式設計的思想。

設計模式 命令設計模式

一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...

設計模式 命令模式

1 命令模式的角色組成 1 命令角色 command 生命執行操作的介面。介面或抽象類來實現。2 具體命令角色 concrete command 將乙個接收者物件繫結於乙個動作 呼叫接收者相應的操作,以實現命令角色宣告的執行操作的介面。3 客戶角色 client 建立乙個具體命令物件 並可以設定它的...

設計模式 命令模式

1 command.h ifndef command h define command h include include include using namespace std class chef 廚師,具體命令的執行者 class command 命令基類 class makemuttonco...