我应该将if(变量< 10)放在自己的方法中吗?

时间:2018-05-07 12:37:27

标签: java design-patterns methods

我在一个循环中检查,我必须检查发生次数是否小于10,可以写为

 if(occ < 10){

 }

 if(checkIfOccurencyIsLessThan10(occ)){
         values.add(current+"0"+occ);
    }
     else{
          values.add(current+occ);
    }

我正在阅读清洁代码,这是一本敏捷软件工艺手册,他们说方法应该做的最少,代码应该被编入更多部分。这有必要吗?我正在努力更好地掌握一个方法应该有多长,以及它应该做多少。

2 个答案:

答案 0 :(得分:2)

这取决于此条件是否分布在多个代码段中,并且此检查在将来可能会更改以包括检查其他边缘情况。如果这两件事都是真的或可能是真的,那么肯定的是,将支票提取到它自己的功能是明智的。但是,我肯定会说你应该将函数重命名为不指定函数实现,因为这会破坏能够更改条件的目的,对吧?将其命名为occurenceNeedsZero是一种更灵活的解决方案。因为如果你想出其他需要检查的用例,你也可以将它们添加到这个函数中!

但是,如果您的问题是“我是否应该总是进行简单的条件检查,例如”是x&lt; 10“进入它自己的功能,然后我会说不。在我看来,这将是过度工程。函数应该用于1)代码的逻辑部分,2)增加可读性,或3)提取小块代码分散在多个地点,并可能在未来发生变化,因为它简化了未来的重构。

可能比那些3更多的案例,但那些是大案例。

答案 1 :(得分:1)

最好使用静态最终变量来存储此10,而不是硬代码。

如果还有其他地方需要检查是否occ < 10,则需要将其作为方法提取。否则它是不必要的。