【发布时间】:2017-07-01 15:12:29
【问题描述】:
我想编写干净快速的代码来评估某些条件,如果条件为真则执行操作并返回该条件值。
到目前为止,我有以下选择:
选项 1:
public boolean method() {
if (...condition...) {
action();
return true;
} else {
return false;
}
}
选项 2:
public boolean method() {
boolean actionNecessary = ...condition...;
if (actionNecessary) {
action();
}
return actionNecessary;
}
选项 3:
public boolean method() {
return ifDoReturn(...condition..., () -> {
action();
});
}
使用辅助方法:
public static boolean ifDoReturn(boolean condition, Runnable action) {
if (condition) {
action.run();
}
return condition;
}
第一个选项最长,第二个更短也很快,第三个最短但很棘手,没有编译器优化也很慢。
感谢您的帮助
【问题讨论】:
-
这取决于很多因素。贵公司有可遵循的标准吗?谁来维护?这是一次性程序吗?没有好的回应,因为这是一个个案。
-
第二个简单易读。使用它。
-
是的,但是帮助方法的适当名称可能会有很大帮助。
-
我倾向于第二种选择,但可以接受第一种选择。我认为最后一个选项不像其他两个选项那样可读,因此不会认为它是一个好的选择。
-
不要把简单的事情搞得太复杂(适用于第三种解决方案),第一种方法有多余的,因为它可以很容易地重写为第二种方法,因此我会选择第二种方法。如果您对可读代码感兴趣,请参阅 Clean Code 一书。
标签: java if-statement return action