策略模式-如何避免注入为NULL问题
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
策略模式概念
策略模式允许在运行时更改类的行为或算法,属于行为型设计模式。使用策略模式,可以避免多重条件判断,简化代码维护,并且良好支持扩展性。然而,策略模式会增加额外的类管理。适用于业务逻辑中有许多条件判断或系统中有多个行为几乎相同的类时。
策略模式-用户支付-解决注入NULL问题
场景描述
以用户支付为例,采用策略模式编写代码,解决策略模式中service层注入为NULL的问题。
解决方案
- 定义支付方式枚举类,包含微信支付和支付宝支付,每种支付方式对应一个type值。
- 创建策略上下文类,通过构造方法注入所有策略类,确保不为空。
- 定义策略接口类,作为所有支付服务对外的接口。
- 实现具体策略类,例如微信支付和支付宝支付类。
- 注入策略上下文类,根据type值调用对应的支付策略。
代码实例
定义了微信支付和支付宝支付的枚举类、策略上下文类、策略接口以及具体策略类。通过枚举类管理不同的支付类型,策略上下文类负责根据type值获取相应的策略实例,并通过策略接口调用具体的支付方法。
使用方式
直接注入策略上下文类,并通过type值调用策略上下文的getStrategyByType方法来获取相应的策略实例进行支付。
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
武功秘籍之发号器
“ 发号器是什么?为什么要用发号器?可以解决什么问题?”
ClickHouse基于docker单机版本安装与应用教程
ClickHouse基于docker单机版本安装与应用教程。
系统架构设计师32小时通关笔记:五、软件开发生命周期基础知识
第五章主要介绍软件开发生命周期、生命周期模型
JAVA如何后台导出带统计图PDF?
JAVA如何后台生成PDF?如何生成带统计图的PDF?
spring boot + Eureka如何平滑上下线服务
系统正常运行,如果要新发版程序,如何保证程序平滑上线,不影响前端的请求?使用Eureka作为注册中心时,会有哪些地方会导致新服务上下线延迟?如何优化并解决服务的正常上下线?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线