Why Many Return Statements Are a Bad Idea in OOP

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

这个辩论非常古老,但我也有一些话要说。问题是一个方法是否可以有多个return语句,还是只能有一个。答案可能会让你吃惊:在纯粹的面向对象的世界中,一个方法必须只有一个return语句,而且没有其他任何操作符或语句。是的,只有一个return语句,仅此而已。任何支持多个return语句的论点都违背了面向对象编程的核心理念。

这是一个经典的例子:

上述代码有两个 return 语句,并且比只有一个 return 的代码要短。

更冗长,可读性更差,速度更慢,对吧?对吧。

这是在纯粹面向对象的世界中的代码:

你现在怎么想?没有语句或运算符。没有if>。相反,有IfGreaterThan类的对象

这是一种纯粹和干净的面向对象方法。

然而,Java没有这个。Java(以及许多其他伪面向对象语言)给我们提供了ifelseswitchforwhile等运算符,而不是提供能够执行相同操作的内置类。因此,我们继续以过程的方式思考,并继续讨论两个return语句是否比一个更好。

如果你的代码真正面向对象,你将无法有多个return。此外,每个方法中除了一个return之外,你将什么都没有。实际上,在整个软件中,你只有两个运算符——newreturn。就是这样。

在我们达到那个目标之前,让我们坚持只使用一个return,并至少试着看起来像纯粹的面向对象。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 14:03

sixnines availability badge   GitHub stars