策略模式 (Strategy)
策略模式 (Strategy)
- 应用场景:用于处理不同的任务配置参数。在你的任务中,可能会有不同的任务类型,每个任务类型可能有不同的单位(比如米、毫米)或不同的处理方式。策略模式可以让你根据不同的任务类型选择不同的处理策略。
- 优点:可以动态地选择不同的策略,而不需要修改任务配置类的代码。
class TaskStrategy {
public:
virtual void execute() = 0;
};
class MetricTaskStrategy : public TaskStrategy {
public:
void execute() override {
// 执行米为单位的任务
}
};
class MillimeterTaskStrategy : public TaskStrategy {
public:
void execute() override {
// 执行毫米为单位的任务
}
};
class Task {
private:
TaskStrategy* strategy;
public:
void setStrategy(TaskStrategy* strategy) {
this->strategy = strategy;
}
void run() {
strategy->execute(); // 根据当前策略执行任务
}
};