策略模式-如何避免注入为NULL问题
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
策略模式概念
策略模式允许在运行时更改类的行为或算法,属于行为型设计模式。使用策略模式,可以避免多重条件判断,简化代码维护,并且良好支持扩展性。然而,策略模式会增加额外的类管理。适用于业务逻辑中有许多条件判断或系统中有多个行为几乎相同的类时。
策略模式-用户支付-解决注入NULL问题
场景描述
以用户支付为例,采用策略模式编写代码,解决策略模式中service层注入为NULL的问题。
解决方案
- 定义支付方式枚举类,包含微信支付和支付宝支付,每种支付方式对应一个type值。
- 创建策略上下文类,通过构造方法注入所有策略类,确保不为空。
- 定义策略接口类,作为所有支付服务对外的接口。
- 实现具体策略类,例如微信支付和支付宝支付类。
- 注入策略上下文类,根据type值调用对应的支付策略。
代码实例
定义了微信支付和支付宝支付的枚举类、策略上下文类、策略接口以及具体策略类。通过枚举类管理不同的支付类型,策略上下文类负责根据type值获取相应的策略实例,并通过策略接口调用具体的支付方法。
使用方式
直接注入策略上下文类,并通过type值调用策略上下文的getStrategyByType方法来获取相应的策略实例进行支付。
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
项目经理之必备技能-机房网络知识
项目经理是一个需要综合技术知识和管理知识的岗位,是一个直接面对需求方,并且影响项目交付的关键角色。故机房建设方案是整个信息化项目落地最关键的一项技能,那必须掌握哪些知识内容呢?
项目经理必备技能之需求获取
项目经理应该如何进行需求获取?
究竟是在北上广好,还是回老家工作好呢?
究竟是在北上广好,还是回老家工作好呢?在老家的工作的氛围究竟是咋样的?接下来,让码农周星星带大家一探究竟~
spring boot + Eureka如何平滑上下线服务
系统正常运行,如果要新发版程序,如何保证程序平滑上线,不影响前端的请求?使用Eureka作为注册中心时,会有哪些地方会导致新服务上下线延迟?如何优化并解决服务的正常上下线?
产品设计的终极答案:别问功能够不够,先问场景需不需
好的设计,从来不是 “我完成了多少功能”,而是 “在用户需要的那一刻,我有没有刚好出现,并且刚刚好解决问题”
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线