策略模式+单列模式(业务:支撑各种格式文件解析需求)
前言
- 这篇文章不适合小白,需要有一定的编码经历以及设计模式的了解
废话不多说,直接上UML图:
需求
支持xml、json、txt、excel格式文件解析
解决方案
策略模式+单列模式
为什么使用策略模式?
(1)产品的需求经常会随着迭代变化,以后可能会出现其他非目前阶段想到的一些文件格式的解析,使用策略模式方便扩展,不用修改以前的代码
(2)增对新的文件格式,我们只需要创建新的XXXhandler继承AbstractHandlerStrategy类实现HandlerStrategy接口即可
为什么使用单列模式?
(1)针对于当前文件解析业务XXXhandler是无状态的,所以我们可以使用单列模式来节约资源
整合spring实现代码
整合spring的时候,其实就没有用AbstractHandlerStrategy了,而是直接利用spring bean默认单列的特性以及依赖注入来实现的,简化了代码(主要用到注解:@Component和@AutoWried注解)
上代码:
需要代码的可以评论区@我
小结
关于策略模式的定义,大家自行多百度几篇文章就可以了
关于单列模式的定义,我这边就不多赘述了,懂得都懂
大家可以参考下面的文章,写的挺好,我在具体实现的时候也是参考下面文章里的最优方案:spring整合
参考文章
美团技术博客:https://tech.meituan.com/2022/03/10/interesting-talk-about-design-patterns.html