Java怎么优雅地书写if-else
导读:本文共3892字符,通常情况下阅读需要13分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:这篇文章主要介绍“Java怎么优雅地书写if-else”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么优雅地书写if-else”文章能帮助大家解决问题。1. switchswitch方法针对枚举值处理有不错的效果,比如针对不同的订单状态时要做不同的处理,因为状态值有限,这时我们就可以直接使用switch来针对不同状态做不同的处理:原语句publi... ...
目录
(为您整理了一些要点),点击可以直达。switch方法针对枚举值处理有不错的效果,比如针对不同的订单状态时要做不同的处理,因为状态值有限,这时我们就可以直接使用switch来针对不同状态做不同的处理:
原语句
switch
总结:
switch语句适用于判断条件有限且不需要经过复杂的计算,处理语句简单的场景。如果我们的判断条件需要经过一系列复杂的计算才能得到,或者处理语句逻辑也比较复杂时,我们就要考虑其他的处理方式了,毕竟在case中书写一大堆处理语句并不算得让人舒适的事情
针对比较复杂的处理逻辑时,我们偏向于将这些处理逻辑单独抽离出来,而不是还放在一个方法里处理,增加整体的可读性和解耦性,也是我们衍生出利用函数式接口来处理if else的模式
函数式接口map处理if else的要义,是将各个条件的复杂处理逻辑单独抽取为一个函数式接口方法,通过统一的判断条件来调用不同的方法,具体示例如下
调用时就不用再用if else区分了,直接传入参数到function map中调用
当然我们上述演示的是有参数有返回值的函数式接口,实际生产中我们可能还需要其他形式的函数式接口,我们将其单独罗列出来,供大家参考使用
上述的函数式接口的形式,实际上是针对方法进行了分离,所有的实现方法还是放在了一个类里,即使你可以在FunctionInterfaceStrategy类中通过依赖注入的形式再次调用其他类的方法,但是这样的模式,已经趋近于我们要将的下一种方法,即使用策略模式来解决 if else
策略模式的形式适用于实现方法更加复杂的情况,需要将处理逻辑解耦的更加干净的场景
1、首先我们需要创建一个接口类,用来规定我们后续的实现类的格式
2、其次针对每个判断条件创建一个实现类
3、创建一个策略工厂类,承装实现类
4、方法调用
总结:
通过上述的代码示例,大家其实可以发现,函数式接口和策略模式有异曲同工之处,根本区别在于是否需要将实现方法单独抽取为一个实现类。抽取的粒度越细也就说明解耦越强
使用策略模式,后续如果需要增加if else条件的话,只需要增加实现类即可,针对后续的处理更加方便
最终使用哪一个还需要根据具体的业务情况而定
我们经常需要在方法前处理各种参数嵌套判断逻辑,如果不满足条件就直接返回了,这种情况更加推荐使用卫语句来处理
原语句
卫语句
Java怎么优雅地书写if-else的详细内容,希望对您有所帮助,信息来源于网络。