我注意到一个同事和我在Java类中对方法的排序有相反的做法。我们中的一个人开始使用主要的公共方法上课,然后再放置所有私人帮手。我们中的另一个人确保公共方法在最后。
显然,这只是样式问题,没有正确的答案。但是,在我们决定这件事只是Yooks vs Zooks的另一场争执而只是任意选择一个之前,我想知道是否存在标准的Java风格指南推荐,或者某种可行的理由,为什么一种方法比另一种更好。
我注意到一个同事和我在Java类中对方法的排序有相反的做法。我们中的一个人开始使用主要的公共方法上课,然后再放置所有私人帮手。我们中的另一个人确保公共方法在最后。
显然,这只是样式问题,没有正确的答案。但是,在我们决定这件事只是Yooks vs Zooks的另一场争执而只是任意选择一个之前,我想知道是否存在标准的Java风格指南推荐,或者某种可行的理由,为什么一种方法比另一种更好。
Answers:
尽管通常确实会偏重于它,但是您当然应该尝试遵循组织内的通用标准。因此,无论您决定什么,都要选择一个标准并普遍采用它。
至于选择哪种方式,如果您要遵循提供的建议 清洁的代码,你将能够从顶部的文件中读取到像报纸上的文章,这自然会认为辅助方法底部出现后,他们的方法帮助。这将导致代码结构的最大可读性。所以如果你有
public void doSomething()
{
helpMe();
helpMeAgain();
}
您的文件结构如下
public void doSomething() { }
private void helpMe() { }
private void helpMeAgain() { }
这样做的另一个副作用是,您发现您的助手有他们自己的助手,并且可以帮助您弄清您真正拥有的是文件中存在的另一个类,并且您可以干净地重构以将其提取到自己的类中,因为这些方法是已经按顺序分组在一起。但这是次要的好处。
我倾向于选择按重要性/可见性顺序列出成员的课程(在这里,重要性是指对公共界面有直接影响)。
因此,私有功能有被推低的趋势。
除此之外,我还会倾向于将相似的功能组合在一起,因此仍然可以找到与公共事物混合的小型私人功能。
正如您所说,这是一个品味问题。
但是,当处理不是我的代码时,我将尝试并遵循项目中使用的任何约定。
我发现跟踪此问题的一种好方法是(假设您在Eclipse中工作)创建代码格式配置,并将其与项目源一起导出并将其提交给源代码控制。这样一来,该项目中最新,最出色的代码约定只需单击几下即可进行设置,并进行一些CTRL-SHIFT-F操作,否则您将提交大量的参数。
使用自动格式化程序的另一个好处是,您可以按照使您满意的任何约定进行操作,并且只需在提交之前格式化代码即可。YMMV取决于所述约定和格式化工具。