现象:
设计模式 - 行为型 - 模板模式学习
介绍:
模板模式的设计思路,在抽象类中定义抽象方法的执行顺序,
并将抽象方法设定为只有子类实现,但不提供独立访问的方法 只能通过已经被安排好的定义方法去执行
可以控制整套逻辑的执行顺序和统⼀的输⼊、输出
对于实现方只需要关心好自己的子业务逻辑即可编写即可
如例子中的银行 每个银行只关心自己的实际逻辑 执行循序已经被安排的明明白白
方法:
一:首先定义基础执行数据模型和此业务执行具体执行数据模型
- 定义基础执行数据模型 可抽取共有属性
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进行返回
五:单元测试调用与结果展示