Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该把if(变量<;10)放在自己的方法中吗?_Java_Design Patterns_Methods - Fatal编程技术网

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

Java 我应该把if(变量<;10)放在自己的方法中吗?,java,design-patterns,methods,Java,Design Patterns,Methods,我有一个循环中的检查,在循环中我必须检查出现的次数是否少于10,可以写为 if(occ < 10){ } 我正在阅读《干净的代码》一本敏捷软件技术手册,他们说一种方法应该做得最少,代码应该被分成更多的部分。这里有必要吗?我试图更好地理解一个方法应该有多长时间,以及它应该做多少工作。最好使用一个静态的final变量来存储这个10,而不是硬代码 如果有其他地方需要检查occ是否10,则需要将其提取为一种方法。否则它是不必要的。这取决于此条件是否分布在多段代码中,以及此检查是否可能在将来

我有一个循环中的检查,在循环中我必须检查出现的次数是否少于10,可以写为

 if(occ < 10){

 }

我正在阅读《干净的代码》一本敏捷软件技术手册,他们说一种方法应该做得最少,代码应该被分成更多的部分。这里有必要吗?我试图更好地理解一个方法应该有多长时间,以及它应该做多少工作。

最好使用一个静态的final变量来存储这个
10
,而不是硬代码


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

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

但是,如果您的问题是“我是否应该始终进行简单的条件检查,例如”x<10“至于它自身的功能,我会说不。在我看来,这太过工程化了。”。函数应用于1)分离代码的逻辑部分,2)提高可读性,或3)提取分散在多个位置并可能在将来更改的小块代码,因为它简化了将来的重构


可能有比这3种情况更多的情况,但这些都是大的情况。

我的经理曾经建议我使用这样的东西:CheckIfOccurrencyIsless(occ,10)。你不应该仅仅为了它而“把它分成更多的部分”——如果你能给它一个增加语义价值的名称,就把它放在它自己的方法中(即,如果它降低了阅读您代码的人的认知负荷)。这里的情况似乎不是这样。我认为这有点小了。特别是因为方法名称中有
10
。这会削弱将其分离到自己的方法中的一些好处。这在很大程度上取决于此代码及其周围代码的用法。您正在寻找代码审阅,而不是ans回答一个问题。看,但是你需要包含一个更完整的代码样本如果你把它放在它自己的方法上,你可以给这个方法一个名称,解释为什么你要进行比较,这是有价值的。OccurrenceNeedszero使用起来更有意义。这个测试在循环中确实使用了三次,这就是为什么我要实现它增加大部分内容的可读性
 if(checkIfOccurencyIsLessThan10(occ)){
         values.add(current+"0"+occ);
    }
     else{
          values.add(current+occ);
    }