Gan*_*alf 6 java coding-style return-path
通常情况下,您可能会有一个检查众多条件并返回状态的方法(现在就说布尔值).最好定义一个标志,在方法中设置它,并在结尾返回它:
boolean validate(DomainObject o) {
boolean valid = false;
if (o.property == x) {
valid = true;
} else if (o.property2 == y) {
valid = true;
} ...
return valid;
}
Run Code Online (Sandbox Code Playgroud)
或者,一旦你知道方法的结果,简单地返回会更好/更正确吗?
boolean validate(DomainObject o) {
if (o.property == x) {
return true;
} else if (o.property2 == y) {
return true;
} ...
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在显然可能有try/catch块和所有其他类型的条件,但我认为这个概念很清楚.意见?
如果这是一种你将要拨打数千次的方法,那么提前返回会更好地实现[稍微提高]性能.
如果没有,那么我更喜欢迟到,因为它提高了可读性.
记住程序员通常比编写代码花更多的时间阅读,所以你可以做的任何事情都可以提高可读性.
我更喜欢早退,避免深度筑巢.这是特别的方式开始真正正确的:测试什么,很简单,并获得了(或抛出异常),如果你能做到这样真的早.
如果它在方法的中间,它更像是一个判断调用.
请注意,我会立即重构您的示例以使用单个if:
boolean validate(DomainObject o) {
if (o.property == x || o.property2 == y) {
return true;
} ...
return false;
}
Run Code Online (Sandbox Code Playgroud)
我意识到这只是一个玩具示例,但我的观点是,总是值得寻找更多方法来简化代码:)
| 归档时间: |
|
| 查看次数: |
10222 次 |
| 最近记录: |