SpringBoot 策略+工厂模式优化if..else..

本文介绍了如何使用SpringBoot结合策略+工厂模式优化if-else语句。通过定义策略接口,创建策略工厂,利用Spring的IOC自动注入策略实现类到map中,避免了大量if-else的使用。同时,展示了具体的策略类和上下文的实现,从而简化了代码逻辑。总结中强调了这种实现借助Java泛型和设计模式的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.策略接口

public interface IStrategy {

    /**
     * 根据id获取对应数据
     * @param dispatchQuery
     */
    <T> T getData(QueryParams queryParams);
}

2. 策略工厂

@Component
public class StrategyFactory {
    /**
     * 关键功能 Spring 会自动将 EntStrategy 接口的类注入到这个Map中
     */

    @Autowired
    private Map<String, IStrategy> strategies = new ConcurrentHashMap<>();

    public IStrategy getStrategy(String graphId){
        IStrategy strategy = strategies.get(graphId);
        if(null == strategy) {
            throw new BizException(ResultEnum.STRATEGY_NOT_EXITS);
        }

        return strategy;
    }
}

这里的strategies map用@Autowired修饰, spring IOC会自动将实现Istragety的类put到该map中࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老张家的独苗

可以吃鸡腿????么!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值