前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优化代码去除if-else

优化代码去除if-else

作者头像
Li_XiaoJin
发布2022-06-10 21:25:16
2950
发布2022-06-10 21:25:16
举报
文章被收录于专栏:Lixj's BlogLixj's Blog

临走之前还在做需求,最近在做余量查询,还有一卡多号遗留的一些问题。发现以前的一些代码全是if-else,借着这次机会进行优化掉,记录一下。 所以代码review很重要啊,避免“臭味”代码。 相关代码已脱敏处理。。。

1、提前 return,去除不必要的 else

如果 if-else 代码块包含 return 语句,可以考虑通过提前 return,把多余 else 干掉,使代码更加优雅。

修改前:

代码语言:javascript
复制
if(condition){ 
    //doSomething 
}else{ 
    return ; 
} 

修改后:

代码语言:javascript
复制
if(!condition){ 
    return ; 
} 
//doSomething 

2、使用条件三目运算符

使用条件三目运算符可以简化某些 if-else,使代码更加简洁,更具有可读性。

优化前:

代码语言:javascript
复制
        if ("1".equals(resourceType)) {
            resourceType = "a";
        } else if ("2".equals("resourceType")) {
            resourceType = "b";
        } else {
            resourceType = "c";
        }

优化后:

代码语言:javascript
复制
resourceType = "1".equals(resourceType) ? "a" : "2".equals(resourceType) ? "b" : "c";

3、使用枚举

优化前:

代码语言:javascript
复制
        if ("A".equals(resourceType)) {
            map.put("priorty", 99 - i);
        } else if ("B".equals(resourceType)) {
            map.put("priorty", 89 - i);
        } else if ("C".equals(resourceType)) {
            map.put("priorty", 79 - i);
        } else {
            map.put("priorty", i);
        }

优化后:

引入枚举类:

代码语言:javascript
复制
public enum PriortyEnum {

    A(99, "A"),
    B(89, "B"),
    C(79, "C");

    private int piorty;
    private String resourceType;

    PriortyEnum(int piorty, String resourceType) {
        this.piorty = piorty;
        this.resourceType = resourceType;
    }


    public static int getpiorty(String resourceType) {
        for (PriortyEnum priortyEnum : PriortyEnum.values()) {
            if (priortyEnum.getResourceType().equals(resourceType)) {
                return priortyEnum.getPiorty();
            }
        }
        return 10;
    }

    public int getPiorty() {
        return piorty;
    }

    public void setPiorty(int piorty) {
        this.piorty = piorty;
    }

    public String getResourceType() {
        return resourceType;
    }

    public void setResourceType(String resourceType) {
        this.resourceType = resourceType;
    }
}

引入枚举类后,可以优化为一行代码。

调用:

代码语言:javascript
复制
map.put("priorty", PriortyEnum.getpiorty(resourceType) - i++);

4、使用 Optional

// TO DO

5、使用策略+工厂模式

//TO DO

剩余两个以后遇到加上......

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/优化代码去除if-else

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、提前 return,去除不必要的 else
  • 2、使用条件三目运算符
  • 3、使用枚举
  • 4、使用 Optional
  • 5、使用策略+工厂模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档