设计模式 - 行为型 - 模板模式学习

现象:
设计模式 - 行为型 - 模板模式学习

介绍:
模板模式的设计思路,在抽象类中定义抽象方法的执行顺序,
并将抽象方法设定为只有子类实现,但不提供独立访问的方法 只能通过已经被安排好的定义方法去执行

可以控制整套逻辑的执行顺序和统⼀的输⼊、输出
对于实现方只需要关心好自己的子业务逻辑即可编写即可

如例子中的银行 每个银行只关心自己的实际逻辑 执行循序已经被安排的明明白白

方法:

一:首先定义基础执行数据模型和此业务执行具体执行数据模型

  1. 定义基础执行数据模型 可抽取共有属性
    在这里插入图片描述
    2.定义业务数据执行数据模型
    在这里插入图片描述

二:模板模式核心 定义操作流程与业务接口提供给继承类实现

1.定义设计模式的灵魂
外部可访问 handle方法执行银行办理业务操作
在handle定义了具体去银行执行业务的循序
提供三个具体抽象方法给继承子类去实现 取号、办理、评价
在这里插入图片描述

三:测试使用

此处直接使用new对象来控制
实际业务中可借助spring容器注入方式来控制
在这里插入图片描述

实例使用

模板模式结合策略模式
模拟获取第三方信息接口 如获取微信、抖音、百度的第三方信息

一:定义请求与返回model对象

1.首先定义请求对象 参数可根据业务扩展
在这里插入图片描述
2.定义返回对象参数 参数根据业务扩展
在这里插入图片描述

3.定义此接口全局对象包括请求与返回

在这里插入图片描述

二:定义获取信息接口 与 接口容器

1.定义获取第三方信息的接口 参数为全局对象 携带请求参数与返回体
在这里插入图片描述
2.定义容器 容器注入Spring容器 存放具体实现的map 类型type作为key 具体实现作为value
在这里插入图片描述

三.定义抽象类与具体获取信息的实现

1.定义抽象类 实现接口 使用@PostConstruct 子类初始化的时候 将子类具体实现注入到容器的map里面
getInfo定义获取第三方信息的一系列模板操作流程
具体实现doHandle方法给每个子类自己实现
在这里插入图片描述
2.定义具体业务实现 百度、抖音、微信信息获取
此处未写真实获取方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
四:提供对外调用方法
这里为了测试将参数写死了获取抖音喝微信的信息
正常业务应该接受外界调用参数转成我们的TemplateModel对象调用
然后获取TemplateMpodel的response 转成接口的返回vo进行返回

在这里插入图片描述
五:单元测试调用与结果展示
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值