实例变量声明的放置

时间:2008-10-20 14:10:14

标签: java variables coding-style

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

5 个答案:

答案 0 :(得分:17)

由于“程序到'接口',而不是'实现'。” (Gang of Four 1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜欢在类的底部声明实例变量。理论是一个类的用户更感兴趣的是他们可以用类(方法)做什么,而不是做某事(变量)。将方法放在类的顶部会在查看代码时首先将它们暴露给用户。

答案 1 :(得分:14)

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

然而,根据我的经验,将它们置于顶端更为常见,并且是Java style guidelines推荐的做法,这就是我的目标。

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

答案 2 :(得分:1)

这主要是(如果不是全部)个人偏好。我喜欢他们在顶部,但我真的不能给它一个更好的理由然后这就是我习惯的方式。

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

我总是理性化,如果你有私人班级变量,那么你既可以硬编码配置,也可以以某种方式跟踪状态。如果您正在跟踪状态,那么1)应该让那些从打开文件的那一刻起在文件中编写代码的人明白,并且2)跟踪大量状态是一个巨大的代码气味,如果我的开发人员这样做,那么我希望它显而易见。所以把它放在顶部,imho,使得错误的代码更加明显,并作为对编辑课程的未来人员的警告。

然而,绝对将您的公共/受保护与私人领域和成员分开,因为对一个人感兴趣的人可能对另一个人不感兴趣。