依 CSDN刘伟技术博客,C++命令模式示例如下:
1 // include/Command.h
2
3 #ifndef __COMMAND__
4 #define __COMMAND__
5
6 #include <WindowHandler.h>
7 #include <HelpHandler.h>
8
9 //抽象命令类
10 class Command
11 {
12 public:
13 virtual void execute(void) = 0;
14 virtual ~Command(void){}
15 };
16
17
18 //最小化命令类:具体命令类
19 class MinimizeCommand: public Command
20 {
21 private:
22 WindowHandler* whObj; //维持对请求接收者的指针
23
24 public:
25 MinimizeCommand(void);
26
27 //命令执行方法:将调用请求接收者的业务方法
28 void execute(void);
29
30 ~MinimizeCommand(void);
31 };
32
33 //帮助命令类:具体命令类
34 class HelpCommand: public Command
35 {
36 private:
37 HelpHandler* hhObj; //维持对请求接收者的指针
38
39 public:
40 HelpCommand(void);
41
42 //命令执行方法:将调用请求接收者的业务方法
43 void execute(void);
44
45 ~HelpCommand(void);
46 };
47
48 #endif
1 // include/FunctionButton.h
2
3 #ifndef __FUCNCTIONBUTTON__
4 #define __FUCNCTIONBUTTON__
5
6 #include <Command.h>
7 //功能键类:请求发送者
8 class FunctionButton
9 {
10 private:
11 char *name; //功能键名称
12 Command* command;//维持一个抽象命令对象指针
13
14 public:
15 FunctionButton(const char* str);
16
17 const char* getName(void)const;
18
19 //为功能键注入命令
20 void setCommand(Command* cmd);
21
22 //发送请求的方法
23 void onClick(void);
24
25 ~FunctionButton(void);
26 };
27
28 #endif
1 // include/FunctionButton.h
2
3 #ifndef __FUCNCTIONBUTTON__
4 #define __FUCNCTIONBUTTON__
5
6 #include <Command.h>
7 //功能键类:请求发送者
8 class FunctionButton
9 {
10 private:
11 char *name; //功能键名称
12 Command* command;//维持一个抽象命令对象指针
13
14 public:
15 FunctionButton(const char* str);
16
17 const char* getName(void)const;
18
19 //为功能键注入命令
20 void setCommand(Command* cmd);
21
22 //发送请求的方法
23 void onClick(void);
24
25 ~FunctionButton(void);
26 };
27
28 #endif
1 // include/FBSettingWindow.h
2
3 #ifndef __FBSETTINGWINDOW__
4 #define __FBSETTINGWINDOW__
5
6 #include <FunctionButton.h>
7 //功能设置窗口类
8 class FBSettingWindow
9 {
10 private:
11 char* title; //窗口标题
12 //定义一个ArrayList来存储所有功能键
13 FunctionButton* functionButtons[16];
14
15 public:
16 FBSettingWindow(void);
17
18 FBSettingWindow(const char* str);
19
20 void setTitle(const char *str);
21
22 const char* getTitle(void)const;
23
24 void addFunctionButton(FunctionButton* fb);
25
26 void removeFunctionButton(FunctionButton* fb);
27
28 //显示窗口及功能键
29 void display(void);
30
31 ~FBSettingWindow(void);
32
33 };
34 #endif
1 // include/HelpHandler.h
2
3 #ifndef __HELPHANDLER__
4 #define __HELPHANDLER__
5
6 //帮助文档处理类:请求接收者
7 class HelpHandler
8 {
9 public:
10 void display(void);
11 };
12
13 #endif
1 // include/WindowHandler.h
2
3 #ifndef __WINDOWHANDLER__
4 #define __WINDOWHANDLER__
5
6
7 //窗口处理类:请求接收者
8 class WindowHandler
9 {
10 public:
11 void minimize(void);
12 };
13
14 #endif
原文链接: https://www.cnblogs.com/openix/archive/2013/06/11/3132009.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/91897
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!