私有方法应该放在公共方法的上面还是下面?

5

在IT技术中,一般是将私有方法放在公共方法的上方或下方?例如,如果将caller()重构为两个方法,那么aboveCaller()belowCaller()哪个更标准?

private void aboveCaller() { /*...here?...*/ }

public void caller() {
    aboveCaller();
    belowCaller();
}

private void belowCaller() { /*...or here?...*/ }

尽管这是Java相关的问题,但它是一般编程问题,并不特定于某种语言。(如果此前已有提问请谅解——我在这里搜索了一下,但没有找到相应答案)。

是的。但它们只是惯例,而不是普遍真理。我只会按访问修饰符进行分组,但有些人更喜欢在调用之前定义事物。 - Elliott Frisch
我认为这个问题不适合在这里讨论。因为这个问题涉及到代码格式,除了良好的实践之外,没有直接的答案。 - Ruchira Gayan Ranaweera
3个回答

2
根据自上而下的设计,我首先编写方法调用,然后实现它们,这样它们就会在下面。
有些人喜欢将它们置于调用者之上,因为这样更清晰(你首先遇到实现,然后看到调用)。
无论如何,遵循你的惯例。

通常的惯例似乎是“公共成员在私有成员之前”,这也是Eclipse中默认的“成员排序顺序”(如果选中了“按可见性对同一类别的成员进行排序”),所以我会采用这种方式。 - Steve Chambers

2

我认为没有一个固定的惯例。然而,通常我会将belowCaller放在下面。它是主函数的支持函数,直到我在主函数的内容中遇到它之前,我不想看它。话虽如此,我会先放所有公共函数,然后是所有私有函数。我将类变量放在顶部。此外,每个不明显的函数都应该有javadoc,这有助于更好地理解代码。


1

有20个人将回答这个问题,而你将最终得到25个不同的答案。

我认为没有标准的惯例,在Java中也无关紧要。您可以按字母顺序列出它们,或者将相关方法分组,或者先列出私有方法然后再列出公共方法,或者将setter放在getter前面,或者将getter和setter成对放在一起等。

除非您的教授或老板定义了另一种惯例,否则应该按照您感觉最自然的方式进行。

编辑:要知道这有多么任意,请看右侧“相关”栏中所有类似的问题。


我正在寻找一个公约,了解最常见或预期的做法 - 例如,如果您在文本编辑器中滚动代码文件且没有使用IDE工具,则会查找此类方法的位置?其中一种理论上的回答是获得所有曾经编写过的代码,并计算超过/低于其调用者的方法数量 - 如果它是50/50的比例,那将会让人惊讶! - Steve Chambers
我不会感到惊讶,如果它是一个50/50的分裂。我认为你更有可能找到我提到的(尽管是任意的)“惯例”之一,而不是找到一个以上/以下的惯例。 - Kevin Workman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接