工厂模式实战——SpringBoot框架下的If-else代码优化

本文探讨了在SpringBoot框架中如何通过工厂模式优化if-else代码,以提高代码可读性和可扩展性。文章首先阐述了避免if-else的原因,接着通过一个学校收费系统的例子,展示了原始的if-else问题。然后,作者提出了一种优化方案,包括创建接口、实现类和工厂类,并给出了测试用例。最后,文章指出了现有方案的不足,并利用SpringBoot进行了进一步优化。

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

SpringBoot框架下的If-else代码优化

1 为什么要去if-else

在开发的过程中我们可能会经常遇到if else的逻辑,写很多if else对于一位有情怀的程序员看来是不可以接受的,也影响阅读人的阅读感受,同时程序也违背了对修改关闭扩展开放的原则。在写程序的过程中我们应该尽量保证修改关闭,也就是说自己的写的代码逻辑应不该让别人在扩展逻辑的过程中进行修改,同时保证高的可扩展性。

在使用if else写程序的过程中你可能会写出如下的代码:

String type= "";
if(type.equals("类型一")){
   
   
    
}else if(type.equals("类型二")){
   
   
    
}else if(...){
   
   
    
}else {
   
   
    
}

需要加一个分支逻辑就必须得去if else结构中改代码,这样不利于程序扩展,同时也非常难维护,如果业务复杂到一定的程度这块代码可能没法去重构了。

2 案例重现

2.1 案例需求

假设对于学校使用仪器要进行网上收费,然后学校可根据不同主体,比如课题组或者个人进行收费。也具有不同的收费模式。那么对于原先的代码来说需要进行多个if-else判断,代码示例如下:

public void chargeBackAndReturnResult(String chargeType,String chargeBody) {
   
   
        if(chargeBody.equals("Personal")){
   
   
            if(chargeType.equals("Credit")){
   
   
                System.out.println("执行收费主体为个人的信用卡收费模式");//真实业务代码有200行左右
            }else if(chargeType.equals(" deposit")){
   
   
                System.out.println("执行收费主体为个人的储蓄卡收费模式");
            }
        }else if(chargeBody.equals("CommonTeam")){
   
   
            if(chargeType.equals("Credit")){
   
   
                System.out.println("执行收费主体为课题组的信用卡收费模式");
     
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值