实例变量声明的放置

Placement of instance variable declarations

提问人:hydeph 提问时间:10/20/2008 最后编辑:osp70hydeph 更新时间:9/19/2015 访问量:4348

问:

我见过一些开发人员将实例变量声明放在类的末尾,尽管我主要看到它们放在顶部。我能想到的唯一原因是风格偏好,或者它可能以某种方式使它们更容易在 IDE 中使用。选择这种风格有更合理的理由吗?

Java 变量 编码样式

评论


答:

2赞 Rik 10/20/2008 #1

这主要是(如果不是完全)个人喜好。我喜欢它们在顶部,但我真的无法给出更好的理由,这是我习惯的方式。

15赞 Dónal 10/20/2008 #2

没有特别“好”的理由来做这种或那种方式。唯一真正重要的是,同一个项目中的每个人都以同样的方式做事。

然而,根据我的经验,将它们放在顶部更为常见,并且是 Java 风格指南推荐的做法,所以这就是我会采用的做法。

您可以使用自动源代码格式化程序(例如 Jalopy)或 Eclipse 附带的格式化程序来强制执行您选择的约定。

17赞 Ray Tayek 10/20/2008 #3

因为“编程到'接口',而不是'实现'”。(四人帮 1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜欢在类的底部声明实例变量。 理论上,类的用户更感兴趣的是他们可以用类(方法)做什么,而不是如何做某事(变量)。将方法放在类的顶部,在用户查看代码时首先向用户公开这些方法。

评论

2赞 PlsWork 12/1/2017
类的用户首先不必查看源代码内部(用法应该被记录下来,并且可以在不查看源代码的情况下访问)。有人应该查看源代码的唯一原因是了解内部工作原理,这就是为什么我不建议将私有字段放在底部的原因。
1赞 finnw 9/11/2009 #4

大多数实例变量都是 ,所以我倾向于将它们放在底部,因为我是按照可见性递减的顺序声明成员的。如果我按照增加可见性的顺序声明它们,它们将位于顶部,这也是合理的。private

我不喜欢的是私有字段后跟公共字段,然后是私有方法。如果我正在开发一个客户端类,我希望所有公共部分都放在一起(因为这是我感兴趣的)。

1赞 Robert Christ 8/2/2014 #5

我一直认为,如果你有一个私有类级变量,那么你要么对配置进行了硬编码,要么以一种或另一种方式跟踪状态。如果你正在跟踪状态,那么 1) 从打开文件的那一刻起,每个将在文件中编写代码的人都应该清楚地看到这一点,以及 2) 跟踪大量状态是一个巨大的代码味道,如果我的开发人员正在这样做,那么我希望它是显而易见的。因此,恕我直言,把它放在顶部会使糟糕的代码更加明显,并作为对未来编辑该类的人的警告。

不过,一定要将你的公共/受保护领域与私有领域和成员分开,因为对一个感兴趣的人可能对另一个不感兴趣。