设计模式之模板模式(C++)

article/2025/10/25 21:40:57

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

一、模板模式是什么?

       模板模式是一种行为型的软件设计模式,在父类中定义了一个模板算法,只实现模板中的公共部分,将可变部分放在子类中实现,不同的子类对同一模板有不同的扩展和实现。

       模板模式的优点:

  1. 良好复用性。父类中公共部分可以多次使用,具备好的环境适应性。
  2. 良好扩展性。子类对父类模板的具体实现作扩展。
  3. 符合开闭原则。基于模板扩展功能,不需要改动原有代码。

      模板模式的缺点:

  1. 类个数增加。基于模板的每个实现,都要定义一个子类,容易使代码量膨胀。
  2. 若父类模板有改动,则子类均要同步更改。

二、模板模式

2.1 结构图

       客户端即Main主函数,定义好模板框架,具体步骤的实现交给子类完成。

2.2 代码示例

       场景描述:我是一个电脑店的老板,给我的徒弟们培训了一个大致的电脑安装教程,徒弟根据不同品牌不同客户的需求,参照我的教程完成安装。

//Template.h
/****************************************************/
#pragma once
#include <iostream>
#include <unordered_map>
#include <vector>
#include <list>
#include <string>using namespace std;// 定义模板类-电脑
class Computer 
{
public:// 装配void install() {cout << "电脑安装开始。" << endl;cout << "电脑品牌为:" << getComputerType() << endl;installProcessor();installMemory();installCaliche();cout << "电脑安装结束。" << endl;}private:// 获取电脑类型virtual string getComputerType() = 0;// 安装处理器virtual void installProcessor() = 0;// 安装内存virtual void installMemory() = 0;// 安装硬盘virtual void installCaliche() = 0;};// 实现具体模板类-惠普电脑
class HPComputer : public Computer 
{
private:// 获取电脑类型virtual string getComputerType() {return "惠普";}// 安装处理器virtual void installProcessor() {cout << "安装处理器:Inter 酷睿i7-1260P" << endl;}// 安装内存virtual void installMemory() {cout << "安装内存:32GB DDR4-3200MHz" << endl;}// 安装硬盘virtual void installCaliche() {cout << "安装硬盘:1TB SSD" << endl;}};// 实现具体模板类-戴尔电脑
class DellComputer : public Computer 
{
private:// 获取电脑类型virtual string getComputerType() {return "戴尔";}// 安装处理器virtual void installProcessor() {cout << "安装处理器:Inter 酷睿i7-1265U" << endl;}// 安装内存virtual void installMemory() {cout << "安装内存:16GB DDR4-3200MHz" << endl;}// 安装硬盘virtual void installCaliche() {cout << "安装硬盘:512GB SSD" << endl;}
};
//main.cpp
/****************************************************/
#include <iostream>
#include <string>
#include "Template.h"using namespace std;int main() 
{Computer *computerA = new HPComputer();Computer *computerB = new DellComputer();computerA->install();cout << endl;computerB->install();delete computerA;delete computerB;computerA = nullptr;computerB = nullptr;return 0;
}

       程序结果如下。

       看过我“建造者模式”篇的小伙伴应该会发现,这两篇举的例子都是安装电脑。但是建造者模式中有一个“监工”负责落实建造的具体步骤和顺序,而模板模式中是父类承担了这个职责。

三、总结

       我尽可能用较通俗的话语和直观的代码例程,来表述我对模板模式的理解,或许有考虑不周到的地方,如果你有不同看法欢迎评论区交流!希望我举的例子能帮助你更好地理解模板模式。

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!


http://chatgpt.dhexx.cn/article/v2adZxSj.shtml

相关文章

设计模式——模板模式

更多内容&#xff0c;前往 IT-BLOG 在面向对象程序设计过程中&#xff0c;程序员常常会遇到如下情况&#xff1a;设计一个系统时知道算法所需的关键步骤&#xff0c;且确定了这些步骤的执行顺序&#xff0c;但某些步骤的具体实现还未知&#xff0c;或者说某些步骤的实现与具体…

深入理解设计模式之模板模式

我们平时办理入职的流程是&#xff1a;填写入职登记表->打印简历->复印学历->复印身份证->签订劳动合同->建立花名册->办理工牌->安排工位。我平时在家里炒菜的流程是&#xff1a;洗锅->点火->热锅->上油->下原料->翻炒->放调料->出…

数据化风控与催收人员策略管理

在印象中催收也许是个玄学&#xff0c;一个做得好的催收员除了催收技巧外、你需要了解心理学、懂声音学、懂人性、懂风水易经&#xff0c;比如就有个认识的人对什么岁数的人在哪个时辰拨打电话才比较好&#xff0c;都有讲究…总之一切尽在不言中… 但催收的管理却与之相反&…

信贷产品年终总结之风控评分模型

叮咚&#xff0c;信贷年终总结的又一个专题来了&#xff0c;作为报告总结类的系列型文章&#xff0c;近期我们番茄知识星球平台陆续发布了相关年终总结专题&#xff0c;依次为客群特征画像、贷中行为分析、贷后逾期表现等&#xff0c;以上文章可详见之前陆续发布的内容。该业务…

实操信贷场景中的反欺诈模型

今天的文章&#xff0c;关于反欺诈模型的实操&#xff0c;之前有跟大家分享过相关内容&#xff0c;部分反欺诈的领域的童鞋感觉内容比较有帮助&#xff0c;今天就该内容进行讲解。本文介绍的产品适合在消费零售信贷及现金场景贷中的中短期产品&#xff0c;其中涉及的变量参考有…

信贷全生命周期监控报表开发

对于任何一家从事信贷业务的机构而言&#xff0c;监控报表的设计及搭建尤为重要。因为监控报表不仅涉及信贷风控的资产监控&#xff0c;更能反馈客群质量的变化、内部管理手段的调整、策略规则对客群质量的影响等方面。为此&#xff0c;番茄风控输出此系列文章&#xff0c;我们…

信贷全流程监控报表有哪些?

风险策略分析工作是风险管理的重要工作内容&#xff0c;其工作内容需要涉及风控领域中多个环节及细节内容&#xff0c;包含贷前策略调整、策略分析调优、贷中业务监控、贷后策略调整等模块内容&#xff0c;涉及相关模块工作细节及工作内容&#xff0c;我们将一一为大家梳理及分…

详解小微机构贷前准入规则

关注 “番茄风控大数据”&#xff0c;获取更多数据分析与风控大数据的实用干货 嗨同学们好&#xff0c;现在疫情的情况已经出现大反转&#xff0c;我们国内的疫情已经控制住&#xff0c;多个城市都出现了连续多年0增长&#xff0c;一二线城市的部分公共场合也陆续对外开放&…

催收评分卡是如何搭建的?

1、背景 在整个风控体系中&#xff0c;一般分为贷前、贷中和贷后&#xff0c;贷前一般包括反欺诈和A卡&#xff0c;贷中一般使用B卡&#xff0c;贷后一般使用C卡&#xff0c;随着现在监管的越来越严格&#xff0c;催收的合规性越来越重要&#xff0c;所以各持牌金融机构越来越…

贷款中介业务管理系统-具备完善的贷前审批及贷后监管功能

一、系统介绍 银行贷款中介平台&#xff08;助保贷平台&#xff09;是一套适用于当今时代的中介系统&#xff0c;对于借款人来说可以满足他们上学、培训、旅游、购物等。平台根据各借款人资质推介给各银行或用自有资金放款。贷款中介系统提供了一套完善的网络借贷系统&#xff…

一文带你了解助贷行业

原文作者&#xff1a;宁阿姨&#xff08;知乎ID&#xff09; 原文链接&#xff1a;https://zhuanlan.zhihu.com/p/485880345 注&#xff1a;仅限自己学习使用 日常消费用花呗用信用卡&#xff0c;个人周转用借呗或微粒贷&#xff0c;买车买房用车贷房贷&#xff0c;作为消费者…

贷后催收中的风险联动管控指标

在番茄风控大数据之前的文章中&#xff0c;之前跟大家介绍过催收相关内容&#xff1a;催收小词典&#xff0c;助你轻松讨回债务。 今天文章会再跟大家介绍在这些催收指标中&#xff0c;哪些指标是可以反馈到贷前贷中风控环节的。在策略整体优化流程而言&#xff0c;数据是流动…

现金贷、信用贷、消费贷小贷系统后台、现金贷、消费贷、信用贷、助学贷、旅游贷、装修贷、准入授信 、贷款申请、产品授信、合同管理、放款审批、放款登记、还款管理、贷后检查、贷后预警、贷款结项、Axure原型

现金贷、信用贷、消费贷小贷系统后台、现金贷、消费贷、信用贷、助学贷、旅游贷、装修贷、准入授信 、贷款申请、产品授信、合同管理、放款审批、放款登记、还款管理、贷后检查、贷后预警、贷款结项、 Axure原型演示及下载地址&#xff1a;Axure Cloud - Generating Project …

什么是银行测试业务?银行测试业务包括哪些?

我们知道软件测试是为了保证软件的质量和可靠性而在新软件系统上线之前对软件进行的质量检测工作。通过软件测试这个过程找出软件中的错误&#xff0c;分析错误的产生原因和容易产生错误的区域&#xff0c;进而有针对性的设计测试方法提高软件测试的效率。 以上简单讲述了一下…

贷前贷中风控体系

消费金融服务方&#xff1a;金融系、场景系、互联网系 第三方支撑平台&#xff1a;获客平台、风控支持、系统服务、支付平台、贷后管理 消费金融风控全流程 贷前审查&#xff1a;信息采集、信息验证、反欺诈 贷中评估&#xff1a;信用评估、授信 贷后管理&#xff1a;贷后…

贷中管理-理论

Part1 什么是贷中管理 贷中管理&#xff1a;值从贷款发放之日起&#xff0c;至贷款本息收回日期为止的贷款管理。 不同于贷前和贷后管理&#xff0c;贷后管理早期在信贷管理较为薄弱&#xff0c;且没有明确的业务目标。但随着催收压力逐渐加大&#xff0c;且贷中管理存在大量的…

贷前中后简单记录

前中后 贷前贷中贷后是一个业务分类&#xff0c;是用户信贷生命周期的三个阶段。并不是一个业务架构或者技术架构。以下的贷前贷中贷后主要是互金领域的情况&#xff0c;传统银行也有贷前贷中贷后&#xff0c;但是做法不同。 贷前 1、准入/额度/利率 贷前的核心就是两个&am…

艾肯4nano_Utrack_micu_mobile等声卡调试_网络主播防坑必学技能

小伙音频技术专业声卡调音师讲解关于艾肯声卡的调试与选用技巧&#xff0c;防坑必看&#xff01;更多咨询也可关注声卡调试教程论坛 一&#xff1a; 4、6nano&#xff1b; Utrack&#xff1b; micu&#xff1b;mobile &#xff1b; Uporst2/4/6 等这几款支持效果精调 &a…

艾肯声卡调试机架安装教程与下载_2019最新推荐

哈喽大家好&#xff0c;我是你们的老朋友声卡调试专业网站长小伙音频技术&#xff0c;2019年度艾肯认证授权调音师&#xff0c;尤其擅长各款网络主播直播专用独立声卡的效果精调&#xff01; 艾肯声卡分老款与新款VST系列&#xff0c;常用ICON声卡micu VST&#xff0c;4nano VS…

艾肯声卡噪音,杂音处理方法

艾肯(icon)外置声卡麦克风【电容麦】噪音&#xff0c;杂音&#xff0c;尾声噪音&#xff0c;声音不干净等主要问题来自哪里&#xff1f;我们可以从以下几个方面进行分析&#xff0c;排查&#xff0c;解决。当然艾肯声卡有多种&#xff0c;比如Cube 4Nano、MicU、Ultra 4、micu …