java设计模式之模板方法设计模式

article/2025/10/25 19:10:32

什么是模板方法设计模式

        模板方法是基于继承实现的,在抽象父类中声明一个模板方法,并在模板方法中定义算法的执行步骤(即算法骨架)。在模板方法模式中,可以将子类共性的部分放在父类里实现,而特性部分在子类中实现,只需将特性部分在父类中声明成抽象方法即可,使得子类可以在不改变算法结构的情况下重新定义算法中的步骤,不同的子类可以以不同的方式来实现这些逻辑。

        模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术,没有关联关系。 因此,在模板方法模式的类结构图中,只有继承关系。

核心设计点

AbstractClass : 抽象类,定义并实现一个模板方法。这个模板方法定义了算法的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类去实现

ConcreteClass : 实现父类所定义的一个或多个抽象方法。

模板方法模式优缺点

优点:模板方法模式通过把不变的行为搬移到父类,去除了子类中的重复代码。子类实现算法的某些细节,有助于算法的扩展。通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。

缺点:每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。

案例一(支付回调)

比如我们开发了一个商城系统,商城支付的时候我们收银台集成了支付宝支付、微信支付、银联支付,调用第三方支付平台之后支付完了那支付平台是不是要给我们收银台返回一个支付结果(支付回调)

 所以这个时候我们应该暴漏一个接口供第三方支付平台回调使用,由于不同支付平台回调通知的参数报文不一样,但是通知行为是一样的,因此通知行为可以在抽象类中定义为模板方法的骨架,不同的参数报文解析由各支付回调子类来进行解析

当第三方支付平台回调过来的时候大致执行下面步骤:

1、报文验签 2、日志入库记录 3、报文解析返回回调状态

下面直接代码展示,首先就是定义抽象类,里面定义共同行为的方法骨架:asyncCallBack

其中验签操作和业务解析定义为抽象方法,由子类进行实现,因为不同支付平台验签方式不一样所以要放在子类中实现,业务解析也一样;我们看到返回成功或者失败也定义为了抽象方法由子类实现是因为不同支付平台要求的返回格式不一样,有的可能要求返回success,有的则要求是返回ok,因此也由子类实现。

 然后是支付宝支付子类实现模板抽象方法(报文为模拟效果报文)

  然后是银联支付子类实现模板抽象方法(报文为模拟效果报文)

 然后通过工程模式来生成对象

 

最后我们写一个controller测试一下

 启动服务访问测试

 

 看到效果了吗兄弟们,成功

案例二(买车-大众迈腾)

        再实现一个案例,就是买车案例,孙悟空和天津饭都需要买大众迈腾,假如买车分为三步骤:起床穿衣服、银行取钱、4s店提车。

        共同点:都需要买大众迈腾

        异同点:起床穿衣服不同的人穿的衣服不一样,不同的人取钱的银行不一样

所以我们可以把买车这个共同行为定义为一个模板方法,起床穿衣服和银行取钱的操作由子类实现

下面代码实现,首先定义抽象类模板方法

 然后是孙悟空买车的子类实现

  然后是天津饭买车的子类实现

 然后我们使用controller测试一下

测试孙悟空买车:

 

 

 测试天津饭买车:

 

 案例到此结束,源代码已经上传码云:https://gitee.com/vancl/strategy/commit/a5a49bb480edcab981dce4f01bab31d5979922e9


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

相关文章

一文搞懂设计模式--模板模式

Hi,大家好。今年的天气实在是太热了,七月份的厦门晒得我觉得身上冒出了烤肉香,不知道各位是否安好,但是在再热的天气也不能阻止我们学习的热情(doge)。今天的主题是模板(Template Method&#x…

设计模式 – 模板设计模式

模板设计模式 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 该模式的主…

【设计模式】模板模式

博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载。本文由博主 威威喵 原创,请多支持与指教。 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/smile_running 这是23种设计模式中的模板模…

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

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、模板模式是什么? 模板模式是一种行为型的软件设计模式,在父类中定义了一个模板算法,只实现…

设计模式——模板模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

一文带你了解助贷行业

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

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

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

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

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

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

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

贷前贷中风控体系

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

贷中管理-理论

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