java - 我应该使用 guard 子句,并尽量避免 else 子句吗?

标签 java if-statement coding-style

我读过(例如从 Martin Fowler 那里)我们应该在 OOP 的(短)方法中使用保护子句而不是单一返回。我还读过(从某个我不记得的地方)应该尽可能避免使用 else 子句。

但是我的同事(我在一个只有 3 个人的小团队工作)强制我不要在一个方法中使用多个 return,并且尽可能使用 else 子句,即使 else 中只有一个注释行 block 。

这让我很难遵循他们的编码风格,因为例如,我无法在一个屏幕上查看一个方法的所有代码。而且我写代码的时候,必须先写guard clause,然后尝试把它转换成没有multiple return的形式。

我错了吗?我应该怎么办?

最佳答案

这是一个有争议的纯粹美学问题。

C 和类似语言在历史上一直避免提前返回,因为它可能会错过通常放置在函数末尾的资源清理,以防提前返回。

鉴于 Java 有异常和 try、catch、finally,所以不必担心提前返回。

就我个人而言,我同意你的看法,因为我经常提前返回 - 这通常意味着更少的代码和更简单的代码流以及更少的 if/else 嵌套。

关于java - 我应该使用 guard 子句,并尽量避免 else 子句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4887212/

相关文章:

java.sql.SQLException : Unknown initial character set index '255' received from server for connector 8. 0.11

Javascript IF 屏幕宽度然后隐藏 div

scala - 箭头反模式是 Scala 中的标准吗

language-agnostic - 您是否遇到过三层间接寻址的任何原因?

c++ - 为可维护性和封装性构建 C++ 类层次结构

java - Http 请求和响应没有返回任何内容

java - 有没有办法将 AOP 建议仅应用于类型的给定实例(例如单例 bean)

java - Tomcat 7.0.42 Neo4j 1.9.2 LifecycleException

javascript - 如何根据下拉选择显示/隐藏 div?

c - 警告 : statement with no effect [-Wunused-value] with if statements