【发布时间】:2010-04-20 19:00:35
【问题描述】:
给定以下代码sn-ps,有什么明显的区别吗?
public boolean foo(int input) {
if(input > 10) {
doStuff();
return true;
}
if(input == 0) {
doOtherStuff();
return true;
}
return false;
}
对比
public boolean foo(int input) {
if(input > 10) {
doStuff();
return true;
} else if(input == 0) {
doOtherStuff();
return true;
} else {
return false;
}
}
或者用这段代码单退出原则会更好吗...
public boolean foo(int input) {
boolean toBeReturned = false;
if(input > 10) {
doStuff();
toBeReturned = true;
} else if(input == 0) {
doOtherStuff();
toBeReturned = true;
}
return toBeReturned;
}
有任何可察觉的性能差异吗?你觉得其中一个比其他的更易于维护/可读吗?
【问题讨论】:
-
°&$§ 是如何发明的?*!单退出原则?真的,它使代码更具可读性吗?
-
很多人(包括我)会说是的,确实如此。
-
在 this 的情况下,#1 和 #2 的功能相同(else 是多余的)。但是,如果表达式都为真(即:
input>5和0==(input%2)),那将是一个完全不同的故事。考虑您正在测试的条件的域,以及它在未来更新中可能会发生的变化。至于 single exit principal,我已经看到它使某些代码变得更加而其他代码的可读性大大降低,因此将其视为工具而不是诫命。
标签: java coding-style maintainability