SpringBoot日常:模板方法模式应用 约定不等于承诺〃 2024-02-17 09:53 58阅读 0赞 #### 文章目录 #### * * 前言 * 1、什么是模板模式? * 2、模板模式的结构 * 3、模板模式的实现 * * 创建模板父类 * 创建实现子类 * 接口测试 ### 前言 ### 对于很多程序员,平时写代码为了方便,可能一股脑就按面向过程那样一下把业务逻辑编写下来,少有会去额外思考设计模式或者算法。这种情况其实不利于我们的编码维护,在本文,将介绍设计模式中的观察者模式,通过本文的介绍将帮助你快速理解和应用。 ### 1、什么是模板模式? ### 模板模式是一种行为设计模式,模板模式的核心思想是将共同的算法流程封装在一个抽象类中,具体实现则在子类中实现。通俗点说,就是完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。 ### 2、模板模式的结构 ### 模板模式包括以下几个角色: **(1)抽象类(Abstract Class)** 定义了算法的骨架,包含了一些抽象方法和具体方法,抽象方法由子类来实现。抽象类是模板模式的核心,它包含了一个模板方法和多个具体方法 **(2)具体类(Concrete Class)** 实现了抽象类中的抽象方法,以便在模板方法中被调用。每个具体类实现的具体方法可以不同,但是它们都共享抽象类中定义的具体方法 ### 3、模板模式的实现 ### 现在有这么一个场景,对接某某银行的接口,正常业务接口调用方式采用post+Json的方式,文件上传类型的接口采用from表单提交,文件下载类型的接口采用get获取流数据。那么我们有一个固定的请求流程,则可以抽取一个模板父类。具体的实现交给子类去实现 > 调用的接口的业务流程是这样的 > 1、组装请求参数和请求方式 > 2、发起请求 > 3、接收返回参数并组装 #### 创建模板父类 #### public abstract class AbstractBankRequestService { /** * 组装请求参数 */ protected abstract void beforeRequest(); /** * 发起请求 */ protected abstract void requestApi(); /** * 处理返回参数 */ protected abstract void afterRequest(); public final void doRequest() { beforeRequest(); requestApi(); afterRequest(); } } #### 创建实现子类 #### 表单提交请求子类 public class FormRequestService extends AbstractBankRequestService { @Override protected void beforeRequest() { System.out.println("form表单提交-----提交前"); } @Override protected void requestApi() { System.out.println("form表单提交-----提交"); } @Override protected void afterRequest() { System.out.println("form表单提交-----提交后"); } } #### 接口测试 #### @GetMapping(value = "/template", produces = MediaType.APPLICATION_JSON_VALUE) public void template() { FormRequestService formRequestService = new FormRequestService(); formRequestService.doRequest(); } ![在这里插入图片描述][0a88bc1176194c3c8e02f642e0dea790.png] [0a88bc1176194c3c8e02f642e0dea790.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/5c97ee95c8b5419583dd6d7c16c43612.png
相关 SpringBoot日常:@Accessors的应用 文章目录 前言 @Accessors(chain=true) @Accessors(fluent = true) @ ゝ一世哀愁。/ 2024年02月17日 10:57/ 0 赞/ 53 阅读
相关 SpringBoot日常:模板方法模式应用 文章目录 前言 1、什么是模板模式? 2、模板模式的结构 3、模板模式的实现 创建模板父类 约定不等于承诺〃/ 2024年02月17日 09:53/ 0 赞/ 59 阅读
相关 SpringBoot日常:适配器模式应用 文章目录 前言 1、什么是适配器模式? 2、适配器模式的结构 3、适配器模式的实现 原接口类的实 灰太狼/ 2024年02月17日 09:32/ 0 赞/ 53 阅读
相关 SpringBoot日常:观察者模式应用 文章目录 前言 1、什么是观察者模式? 2、观察者模式的结构 3、观察者模式的实现 创建一个主题 冷不防/ 2024年02月17日 09:27/ 0 赞/ 29 阅读
相关 SpringBoot日常:策略模式应用 文章目录 前言 1、什么是策略模式? 2、策略模式的结构 3、策略模式的应用例子 创建一个支付处 拼搏现实的明天。/ 2024年02月17日 09:12/ 0 赞/ 35 阅读
相关 设计模式 | 模板方法模式及典型应用 本文的主要内容: 介绍模板方法模式 源码分析模板方法模式的典型应用 Servlet 中的模板方法模式 Mybatis Bas 悠悠/ 2022年05月08日 10:08/ 0 赞/ 217 阅读
相关 模板方法模式 最近看书又遇到模板方法模式,具体是在同步器(AQS)的内容上。就顺便再来回顾下。 同步器AbstractQueuedSynchronizer(AQS)是一个抽象类。其中定义了 墨蓝/ 2021年10月18日 11:34/ 0 赞/ 364 阅读
相关 模板方法模式 生活中有很多按步骤才能完成的事,比如我们想进房间,需要先将门打来,然后才能进去,进去之后再把门关上。开门和关门是固定的步骤,而进入房间的步骤则不是固定的,它可以有多种方式,走着 约定不等于承诺〃/ 2021年10月15日 06:45/ 0 赞/ 397 阅读
相关 模板方法模式 什么叫做模板方法模式? 在定义功能时,功能的一部分是确定的但是有一部分是不确定的,而确定的部分在使用不确定的部分。那么这时就将不确定的部分暴露出来,由该类的子类去实现。 清疚/ 2021年09月18日 15:40/ 0 赞/ 426 阅读
相关 模板方法模式 一 点睛 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些 深藏阁楼爱情的钟/ 2021年07月24日 20:53/ 0 赞/ 479 阅读
还没有评论,来说两句吧...