2008-10-20 200 views
10

我见过一些开发人员在类的最后放置实例变量声明,尽管我大多数人都将它们放在顶部。我能想到的唯一理由是它的风格偏好,或者它可以让它们更容易在IDE中使用。选择这种风格有更合理的理由吗?实例变量声明的放置

回答

17

由于“编程到'接口',而不是'执行'。” (Gang of Four 1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜欢在类的底部声明实例变量。理论认为,一个类的用户更关心他们对类(方法)所做的事情,而不是如何完成某些事情(变量)。将方法放在类的顶部,当他们查看代码时,首先将它们暴露给用户。

+0

一类的用户不应该看的源代码里摆在首位(使用应记录在案,并没有看源代码的访问)。为什么有人应该查看源代码的唯一原因是了解内部工作原理,这就是为什么我不建议将私有字段放在底部的原因。 – 2017-12-01 12:34:24

1

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

14

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

但是,把它们放在最上方是我的经验,这是Java style guidelines推荐的做法,所以这就是我要做的。

可以实施了自动源代码格式化,如Jalopy,或附带了Eclipse的你选择约定。

1

大多数实例变量private,所以我倾向于把它们在底部,因为我在降低能见度的命令,宣布成员。如果我按增加的顺序宣布他们,他们将位于顶部,这也是合理的。

我不喜欢的是其私有字段其次是公共领域其次是私有方法。如果我开发一个客户端类我希望所有的公共部分一起(因为这是所有我感兴趣的)。

1

我一直合理化,如果你有一个私有类级变量,那么你要么硬编码一个配置,或者你正在以某种方式跟踪状态。如果你正在跟踪状态,那么1)从打开文件的那一刻开始,每个将要编写代码的人都应该明白这一点,2)跟踪很多状态是一种巨大的代码味道,如果我的开发人员这样做,那么我希望它是显而易见的。因此,把它放在最顶层,使得不好的代码更加明显,并且为编辑课程的未来人员提供警告。

绝对分开的公共/保护VS私有字段和成员,但因为兴趣之一,人们可能不感兴趣的其他。