首页 > 业内资讯 > 提高代码质量:如何编写函数

提高代码质量:如何编写函数

时间:2016-02-23 | 来源:developerWorks | 阅读:101

话题: developerWorks

我们将相关的操作放在一起,这样代码看起来更清晰了,而且也更容易重构了。

尽量减少代码嵌套

我们平时写if,switch或for语句是常有的事儿,也一定写过多层if或for语句嵌套的情况,如果代码里的嵌套超过3层,阅读起来就会非常困难了。我们应该尽量避免代码嵌套多层,最好不要超过2层。下面我来说说我平时一些减少嵌套的技巧或方法。

if语句嵌套的问题

多层if语句嵌套是常有的事情,有什么好的方法可以减少嵌套呢?
1、尽早终止函数或返回数据
如果符合某个条件下可以直接终止函数,则应该将这个条件放在第一位。我们来看看下面的例子。

if(condition1) { if(condition2){ if(condition3){ } else{ return; } } else{ return; } } else { return; }

这段代码中if语句嵌套了3层,看起来已经很复杂了,我们可以将最后面的return提取到最前面去。

if(!condition1){ return; } if(!condition2){ return; } if(!condition3){ return; } //doSth

这段代码中,我们把condition1等于false的语句提取到前面,直接终止函数,将多层嵌套的if语句重构成只有一层if语句,代码也更清晰了。

注意:一般情况下,我们写if语句会将条件为true的情况写在前面,这也比较符合我们的思维习惯。如果是多层嵌套的情况,应该优先减少if语句的嵌套

2、不适用if语句或switch语句
条件语句一般来说是不可避免的,有的时候,我们要判断很多条件就会写很多if-elseif语句,嵌套的话,就更加麻烦了。如果有一天增加了新需求,我们就要去增加一个if分支语句,这样不仅修改起来麻烦,而且容易出错。《代码大全》提出的表驱动法可以有效地解决if语句带来的问题。我们来看下面这个例子:

if(condition == “case1”){ return 1; } elseif(condition == “case2”){ return 2; } elseif(condition == “case3”){ return 3; } elseif(condition == “case4”){ return 4; }


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网