Java如何优雅替换if-else语句

 更新时间:2021年08月03日 15:12:08   作者:饭一碗  
当逻辑分支非常多的时候,if-else套了一层又一层,那么如何干掉过多的if-else,本文就详细的介绍一下,感兴趣的小伙伴们可以参考一下

场景

日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!

本文将介绍三板斧手段:

  • 优先判断条件,条件不满足的,逻辑及时中断返回;
  • 融入策略模式;
  • 策略模式+工厂+单例模式,锦上添花;

接下来先附上一段很久以前自己写的业务代码,核心逻辑就是在支付回调中根据用户购买的价格包赋予用户对应的权益(VIP视频会员天数+抽奖机会次数)。我的天,太多if-else了……(看不清楚可以点击图片放大)

1.优先判断条件,不满足及时中断

这点非常容易理解,就是说在业务逻辑里面,先把不符合条件的给先过滤掉,而不是层层嵌套if-else判断,结合代码图看一下:

  

2.策略模式改造

先用策略模式替换掉文章开头讲到的,用户充值后根据价格包(付的多少钱)给用户增加VIP天数及抽检机会次数的逻辑,我这里就简化成"根据-价格包区分给用户增加不同的体育会员视频VIP天数"这个动作来讲解:

表面上看,代码稍微优雅了点,但是还是没和if-else彻底说拜拜,且recharge()充值方法可单独拎出来,只需要根据priceCode实例化不同的策略对象即可:

3.策略模式+工厂+单例模式,锦上添花

接下来使用"工厂类+单例"来给代码加点料:

到此这篇关于Java如何优雅替换if-else语句的文章就介绍到这了,更多相关Java替换if-else语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis中批量插入的两种方式(高效插入)

    mybatis中批量插入的两种方式(高效插入)

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。这篇文章主要介绍了mybatis中批量插入的两种方式(高效插入)的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • Java读取.properties配置文件的几种方式

    Java读取.properties配置文件的几种方式

    这篇文章主要介绍了Java读取.properties配置文件的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java 实现简单静态资源Web服务器的示例

    Java 实现简单静态资源Web服务器的示例

    这篇文章主要介绍了Java 实现简单静态资源Web服务器的示例,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-11-11
  • Java ThreadLocal有什么作用你知道吗

    Java ThreadLocal有什么作用你知道吗

    这篇文章主要为大家详细介绍了java ThreadLocal的作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-09-09
  • Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享

    Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享

    这篇文章主要介绍了Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享,需要的朋友可以参考下
    2014-09-09
  • Java三种方法将List转换为Map的实例

    Java三种方法将List转换为Map的实例

    今天小编就为大家分享一篇关于Java三种方法将List转换为Map的实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 使用idea插件进行java代码生成的操作

    使用idea插件进行java代码生成的操作

    这篇文章主要介绍了使用idea插件进行java代码生成的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 关于Java中Object类的几个方法示例

    关于Java中Object类的几个方法示例

    这篇文章主要给大家介绍了关于Java中Object类的几个方法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • JAVA 多线程爬虫实例详解

    JAVA 多线程爬虫实例详解

    这篇文章主要介绍了JAVA 多线程爬虫实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • 消息中间件详解以及比较选择

    消息中间件详解以及比较选择

    这篇文章主要介绍了消息中间件详解以及比较选择,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论