策略模式-如何避免注入为NULL问题
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
策略模式概念
策略模式允许在运行时更改类的行为或算法,属于行为型设计模式。使用策略模式,可以避免多重条件判断,简化代码维护,并且良好支持扩展性。然而,策略模式会增加额外的类管理。适用于业务逻辑中有许多条件判断或系统中有多个行为几乎相同的类时。
策略模式-用户支付-解决注入NULL问题
场景描述
以用户支付为例,采用策略模式编写代码,解决策略模式中service层注入为NULL的问题。
解决方案
- 定义支付方式枚举类,包含微信支付和支付宝支付,每种支付方式对应一个type值。
- 创建策略上下文类,通过构造方法注入所有策略类,确保不为空。
- 定义策略接口类,作为所有支付服务对外的接口。
- 实现具体策略类,例如微信支付和支付宝支付类。
- 注入策略上下文类,根据type值调用对应的支付策略。
代码实例
定义了微信支付和支付宝支付的枚举类、策略上下文类、策略接口以及具体策略类。通过枚举类管理不同的支付类型,策略上下文类负责根据type值获取相应的策略实例,并通过策略接口调用具体的支付方法。
使用方式
直接注入策略上下文类,并通过type值调用策略上下文的getStrategyByType方法来获取相应的策略实例进行支付。
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
k8s + spring boot + Eureka如何平滑上下线服务
上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k8s环境下有一些办法也可以解决这个平滑过度问题,为了解决这个问题,研究了一下目前我这边服务上k8s平滑过度的方案,分享给大家
武功秘籍之熔断与降级
“ 什么是熔断、降级?为什么要做熔断、降级?spring cloud体系下熔断降级是如何设计实现的?”熔断与
系统架构设计师32小时通关笔记:二、计算机与网络基础知识
第一章作为基础知识入门,主要给大家介绍了作为一名架构师应该具有的能力与条件。第二章主要整理计算机与网络基础知识笔记。
系统架构设计师32小时通关笔记:四、信息系统基础知识
第四章主要介绍信息系统基础知识,从概述、总体规划和典型应用三个方面来介绍。
项目经理之必备技能-机房如何建设
项目经理是一个需要综合技术知识和管理知识的岗位,是一个直接面对需求方,并且影响项目交付的关键角色。故机房建设方案是整个信息化项目落地最关键的一项技能,那必须掌握哪些知识内容呢?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线