行为型模型 模版模式
行为型模型 模版模式
应用场景
Template Method模式一般应用在具有以下条件 的应用中:
- 具有统一的操作步骤或操作过程
- 具有不同的操作细节
- 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同
总结:
在抽象类中统一操作步骤,并规定好接口;让子类实现接口。这样可以把各个具体的子类和操作步骤接耦合
AbstractClass:
抽象类的父类
ConcreteClass:
具体的实现子类
templateMethod():
模板方法
method1()与method2():
具体步骤方法
/** * 行为型模型 模版模式 * Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为 * */ #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> class MakeCar { public: virtual void makeHead() = 0; virtual void makeBody() = 0; virtual void makeTail() = 0; virtual ~MakeCar() {} // 把一组行为 变成一个模版 void make() { makeHead(); makeBody(); makeTail(); } }; class MakeBus: public MakeCar { public: virtual void makeHead() override { std::cout << "bus 组装车头" << std::endl; } virtual void makeBody() override { std::cout << "bus 组装车身" << std::endl; } virtual void makeTail() override { std::cout << "bus 组装车尾" << std::endl; } }; class MakeJeep: public MakeCar { public: virtual void makeHead() override { std::cout << "jeep 组装车头" << std::endl; } virtual void makeBody() override { std::cout << "jeep 组装车身" << std::endl; } virtual void makeTail() override { std::cout << "jeep 组装车尾" << std::endl; } }; void mytest() { MakeCar * bus = new MakeBus(); bus->make(); MakeCar *jeep = new MakeJeep(); jeep->make(); delete bus; bus = nullptr; delete jeep; jeep = nullptr; return; } int main() { mytest(); system("pause"); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南