C++ 命令模式实现详解:示例代码与解释
下面是一个简单的 C++ 实现命令模式的示例:
#include <iostream>
#include <string>
#include <vector>
// 命令接口
class Command {
public:
virtual ~Command() {}
virtual void execute() = 0;
};
// 具体命令类
class ConcreteCommand : public Command {
private:
std::string m_message;
public:
ConcreteCommand(const std::string& message) : m_message(message) {}
void execute() override {
std::cout << 'Executing command: ' << m_message << std::endl;
}
};
// 命令调用者
class Invoker {
private:
std::vector<Command*> m_commands;
public:
void addCommand(Command* command) {
m_commands.push_back(command);
}
void executeCommands() {
for (Command* command : m_commands) {
command->execute();
}
m_commands.clear();
}
};
int main() {
// 创建命令对象
Command* command1 = new ConcreteCommand('Command 1');
Command* command2 = new ConcreteCommand('Command 2');
// 创建命令调用者
Invoker invoker;
// 添加命令到调用者
invoker.addCommand(command1);
invoker.addCommand(command2);
// 执行命令
invoker.executeCommands();
// 释放命令对象的内存
delete command1;
delete command2;
return 0;
}
在上面的示例中,我们定义了一个Command接口,其中包含一个execute纯虚函数。然后我们创建了一个ConcreteCommand类,实现了Command接口,并在execute函数中输出一条消息。
接下来,我们创建了一个Invoker类作为命令的调用者,它包含一个addCommand函数用于添加命令,以及一个executeCommands函数用于执行所有命令并清空命令列表。
最后,在main函数中,我们创建了两个具体的命令对象,并将它们添加到调用者中,然后调用executeCommands函数来执行这些命令。
这就是一个简单的 C++ 实现命令模式的示例。希望对你有帮助!
原文地址: https://www.cveoy.top/t/topic/o2YF 著作权归作者所有。请勿转载和采集!