16.模板方法模式
模板方法模式(Template Method Pattern)的主要目的是在父类中定义算法骨架,并把可变步骤延迟到子类实现
适合使用模板方法模式的场景
- 多个流程整体一致,但部分步骤实现不同
- 希望复用固定流程,避免子类重复拷贝逻辑
- 需要在流程中提供默认实现和可选扩展点
- 希望通过继承约束流程执行顺序
模板基类
abstract class DataSyncTemplate {
run(): void {
this.load();
this.validate();
this.transform();
this.save();
}
protected abstract load(): void;
protected abstract transform(): void;
protected validate(): void {
console.log("默认校验逻辑");
}
protected save(): void {
console.log("写入数据库");
}
}子类实现
class CsvSync extends DataSyncTemplate {
protected load(): void {
console.log("读取 CSV 文件");
}
protected transform(): void {
console.log("CSV 数据清洗与映射");
}
}
class ApiSync extends DataSyncTemplate {
protected load(): void {
console.log("拉取 API 数据");
}
protected transform(): void {
console.log("API 字段转换");
}
}使用示例
new CsvSync().run();
new ApiSync().run();