目录
模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern)
模板方法模式是一种行为设计模式,它定义了一个操作的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法结构的情况下重新定义算法中的某些步骤。
实际应用
数据处理流程
-- 有一个数据处理流程,该流程包含读取数据、处理数据和保存数据的步骤。
#include <iostream>
#include <vector>
// 抽象基类
class DataProcessor {
public:
// 模板方法
void process() {
readData();
processData();
saveData();
}
// 基类定义的钩子方法(可选)
virtual void readData() = 0;
virtual void processData() = 0;
virtual void saveData() {
std::cout << "Saving data to default location." << std::endl;
}
virtual ~DataProcessor() = default;
};
// 具体实现类:处理CSV数据
class CSVDataProcessor : public DataProcessor {
public:
void readData() override {
std::cout << "Reading data from CSV file." << std::endl;
}
void processData() override {
std::cout << "Processing CSV data." << std::endl;
}
void saveData() override {
std::cout << "Saving processed CSV data to database." << std::endl;
}
};
// 具体实现类:处理JSON数据
class JSONDataProcessor : public DataProcessor {
public:
void readData() override {
std::cout << "Reading data from JSON file." << std::endl;
}
void processData() override {
std::cout << "Processing JSON data." << std::endl;