登录

去注册

登录

注册

去登录

注册

每日一问 对于代码中有大量的 if/else 你有什么优化思路?

xiaoyang   2019-07-07   收藏

 经验谈咯。


本周3/3

5

今天周五,只开车

不回答问题

回复
4

1.策略模式,将if代码块的方法根据需要封装成类的action方法,然后用工厂模式创建对应对象,使用对应方法

2.和事件传递机制一样,采用责任链模式一层层传递

3.将else代码放在函数前面,尽早返回

回复
1

遇到这种情况,还是考虑实际运用场景。比如:1.多人多团队协作开发,要是将代码简化过度,会造成后人阅读和维护困难等等问题。2.Kotlin和Java语言的处理方式有所不同,在Kotlin中When()就可以处理,相对Java就Alex_Lin大神所说可以解决问题。

回复
1

补充:

  1. 把一部分的if else,封装成方法;
  2. 使用设计模式,比如策略模式;
回复
0

https://www.cnblogs.com/KnightsWarrior/archive/2010/06/29/1767336.html 了解下 if (XXX){.... return;}

今早返回,除去不必要的else 嵌套。 


回复
0

要看if里是啥了,如果都是if(x==..)这种简单的判断语句,就用switch(c语言而且是字符串,就是下面的情况)

如果是那种if(xx&&xx||xx)这种逻辑判断,还有函数什么的,我建议还是放着吧,没什么好优化的了

回复
0

1.多重镶嵌,尽量review 代码 使 if else平级

2.if else 包括的代码过于复杂,用策略模式重构

回复
0

kotlin 的 when(){}

回复
0

回复
0

若是简单的值判断的话,可以考虑使用:

&&、|| 的短路模式。

回复
0

可以用责任链模式

回复
0

switch

设计模式

回复
0

kotlin:

when(xxx){
    1->

    2->

    else->

}

回复
0

我一般三个以上判断用switch,另有些情况 if(      return;)  感觉比 else if 好点。 

回复

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定