扫码阅读
手机扫码阅读
策略模式-如何避免注入为NULL问题

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。


码农周星星
扫码关注公众号
策略模式概念
策略模式允许在运行时更改类的行为或算法,属于行为型设计模式。使用策略模式,可以避免多重条件判断,简化代码维护,并且良好支持扩展性。然而,策略模式会增加额外的类管理。适用于业务逻辑中有许多条件判断或系统中有多个行为几乎相同的类时。
策略模式-用户支付-解决注入NULL问题
场景描述
以用户支付为例,采用策略模式编写代码,解决策略模式中service层注入为NULL的问题。
解决方案
- 定义支付方式枚举类,包含微信支付和支付宝支付,每种支付方式对应一个type值。
- 创建策略上下文类,通过构造方法注入所有策略类,确保不为空。
- 定义策略接口类,作为所有支付服务对外的接口。
- 实现具体策略类,例如微信支付和支付宝支付类。
- 注入策略上下文类,根据type值调用对应的支付策略。
代码实例
定义了微信支付和支付宝支付的枚举类、策略上下文类、策略接口以及具体策略类。通过枚举类管理不同的支付类型,策略上下文类负责根据type值获取相应的策略实例,并通过策略接口调用具体的支付方法。
使用方式
直接注入策略上下文类,并通过type值调用策略上下文的getStrategyByType方法来获取相应的策略实例进行支付。
想要了解更多内容?


码农周星星
扫码关注公众号
码农周星星的其他文章
究竟是在北上广好,还是回老家工作好呢?
究竟是在北上广好,还是回老家工作好呢?在老家的工作的氛围究竟是咋样的?接下来,让码农周星星带大家一探究竟~
ClickHouse基于docker单机版本安装与应用教程
ClickHouse基于docker单机版本安装与应用教程。
实际案例分析-互动数据优化方案
一个app从零到一的时候,刚开始活跃的用户不是很多,这个时候当用户上传视频之后,谁来负责给他们进行评论与回复呢?这个时候就可以依靠强大的运营团队来执行,那应该如何设计整个系统实现需求呢?这个就是本案例分享的互动数据优化方案。
开源项目ZXX-CAS系统从零到一|第四篇:A-RBAC权限服务设计与实现
ZXX-CAS如何设计基于应用的权限相关功能,RBAC是什么?A-RBAC又是什么?如何快速使用写代码的方式画UML图呢?
马上就要35岁了,程序员的接下来30年怎么办?
35岁这个话题在互联网一直传播了很多年,也让很多80后和90后焦虑了很多年,国家已经要求65岁之后,才能领取退休金,那还有30年的程序员应该怎么办呢
加入社区微信群
与行业大咖零距离交流学习


PMO实践白皮书
白皮书上线
白皮书上线