在Spring boot项目中使用策略模式消除if-else代码
在实际的项目中,随着场景的增加,代码的逻辑会越来越复杂。此前苦于代码中if...else越来越多,所以运用了设计模式中的策略模式对其进行重构。
业务场景概述
1. 业务为扣款业务
2. 因为扣款通道的不同,需要对其进行判断,从而调用不同的扣款接口
3. 项目开始,并没有太多的扣款通道,所以使用了简单的 if else结构,但是随着项目的日益庞大,这种结构愈发臃肿
使用策略模式进行初步重构
在学习设计模式---策略模式时,常看的说,策略模式可以对系统中的if else结构进行重构,但是.....
一般是这样的:
@Service
@Slf4j
public class PayEngineServiceImpl implements PayEngineService {
if{
// 逻辑1
......
} else {
// 逻辑2
......
}
}
到这种
@Service
@Slf4j
public class PayEngineServiceImpl implements PayEngineService {
@Resource
protected OrderPayService normalPayServiceImpl;
@Resource
protect