23种设计模式-模板方法
- 电脑硬件
- 2025-08-30 18:36:02

模式定义
模板方法模式(Template Method Pattern)是一种行为型设计模式,它通过定义算法的骨架(固定步骤),允许子类在不改变算法结构的情况下重写特定步骤。该模式的核心是将通用流程封装在基类中,通过继承实现扩展。
模式结构
抽象基类(AbstractClass)
定义模板方法 execute(),包含固定执行流程(如初始化→加工→收尾)声明纯虚函数(如 performMachining())用于子类实现可变步骤 具体子类(ConcreteClass)实现基类中的抽象方法,定义具体加工逻辑(如钻孔、铣削) 客户端(Client)通过基类指针/引用调用模板方法,实现多态执行适用场景
流程标准化:数控系统中不同加工类型共享相同执行流程(如预热→加工→冷却) 代码复用:避免重复编写通用步骤代码(如设备初始化) 扩展性需求:新增加工类型只需继承基类并实现特定步骤
C++示例(数控系统场景)
场景说明: 数控系统需要统一管理不同加工类型(钻孔/铣削)的执行流程,确保所有加工任务都遵循初始化→加工→清理的标准步骤。
#include // 抽象基类:加工流程模板 class MachiningProcess { public: // 模板方法(固定流程) void execute() { initialize(); performMachining(); finalize(); } protected: // 通用步骤(基类实现) void initialize() { std::cout << "设备初始化完成" << std::endl; } void finalize() { std::cout << "清理加工环境" << std::endl << std::endl; } // 可变步骤(子类实现) virtual void performMachining() = 0; }; // 具体子类:钻孔流程 class DrillingProcess : public MachiningProcess { protected: void performMachining() override { std::cout << "执行钻孔:转速2500rpm,深度10mm" << std::endl; } }; // 具体子类:铣削流程 class MillingProcess : public MachiningProcess { protected: void performMachining() override { std::cout << "执行铣削:进给速度500mm/min,切削宽度5mm" << std::endl; } }; int main() { MachiningProcess* process1 = new DrillingProcess(); process1->execute(); // 输出钻孔流程 MachiningProcess* process2 = new MillingProcess(); process2->execute(); // 输出铣削流程 delete process1; delete process2; return 0; }输出结果
设备初始化完成 执行钻孔:转速2500rpm,深度10mm 清理加工环境 设备初始化完成 执行铣削:进给速度500mm/min,切削宽度5mm 清理加工环境实现要点
模板方法封装流程:execute() 方法定义了不可变的执行顺序 钩子方法隔离变化:performMachining() 由子类实现具体加工逻辑 开闭原则:新增加工类型只需继承基类,无需修改现有代码
通过该模式,数控系统可以统一管理各类加工任务的执行流程,同时支持灵活扩展新的加工类型。
23种设计模式-模板方法由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“23种设计模式-模板方法”