我有一个有条件地调用另一个的方法。例如:
public boolean contionallyDoSomething(boolean something){
boolean didSomething = false;
if(something){
theSomething();
didSomething = true;
}
return didSomething;
}
public void theSomething(){
//do something
}
我想我可以把它改写成:
public boolean contionallyDoSomething(boolean something){
boolean didSomething =something && theSomething();
return didSomething;
}
public boolean theSomething(){
//do something
return true;
}
第二种方法感觉更整洁,我个人喜欢它。然而,我有点厌倦了编写这样的代码,它可能会回来咬我。有什么不好的方面?有什么优点/缺点?
由于
答案 0 :(得分:1)
此代码的最大缺点,特别是如果它致力于共享存储库,则是可读性。 if statement branching
可以轻松地将意图呈现在哪里 - 因为压缩的代码需要第二眼(对于凡人来说)来破译它正在做的事情。
至于优点,你可以编写更少的代码,在某种程度上,编译器会优化它以便更快地运行。
答案 1 :(得分:1)
答案 2 :(得分:0)
public boolean contionallyDoSomething(boolean something) {
if (something) {
theSomething();
}
return something;
}
当然这更有意义,而不是返回第二个布尔值,它将与通过的布尔值相同?
答案 3 :(得分:0)
你正在涉足主观水域。所有的优点和缺点都与可读性有关。就个人而言,我会更进一步,将其写成:
public boolean contionallyDoSomething(boolean something) {
return something && theSomething();
}
但我发现代码的紧张性增加了可读性。其他人可能(并且将会)不同意。