【发布时间】:2008-10-20 14:10:13
【问题描述】:
我看到一些开发人员将实例变量声明放在类的末尾,尽管我大多看到它们放在顶部。我能想到这样做的唯一原因是风格偏好,或者也许它以某种方式使它们更容易在 IDE 中使用。选择这种风格有更正当的理由吗?
【问题讨论】:
标签: java variables coding-style
我看到一些开发人员将实例变量声明放在类的末尾,尽管我大多看到它们放在顶部。我能想到这样做的唯一原因是风格偏好,或者也许它以某种方式使它们更容易在 IDE 中使用。选择这种风格有更正当的理由吗?
【问题讨论】:
标签: java variables coding-style
因为“编程到‘接口’,而不是‘实现’。” (Gang of Four 1995:18) (http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人喜欢在类的底部声明实例变量。理论是类的用户更感兴趣的是他们可以用类(方法)做什么,而不是如何完成某事(变量)。将方法放在类的顶部会在用户查看代码时首先向他们公开。
【讨论】:
以一种或另一种方式做这件事没有特别“好的”理由。唯一真正重要的是同一个项目中的每个人都以同样的方式做事。
但是,根据我的经验,将它们放在顶部更为常见,这是 Java style guidelines 推荐的做法,所以我会这样做。
您可以使用自动源代码格式化程序(例如 Jalopy)或 Eclipse 附带的程序来强制执行您选择的约定。
【讨论】:
这主要是(如果不是完全)个人喜好。我喜欢他们在顶部,但我真的无法给出更好的理由,那就是我已经习惯了。
【讨论】:
大多数实例变量都是private,所以我倾向于将它们放在底部,因为我声明成员的顺序是降低可见性。如果我按照增加可见性的顺序声明它们,它们将位于顶部,这也是合理的。
我不喜欢私有字段后跟公共字段后跟私有方法。如果我正在开发一个客户端类,我希望将所有公共部分放在一起(因为这就是我感兴趣的全部。)
【讨论】:
我一直认为,如果您有一个私有类级别的变量,那么您要么硬编码了配置,要么以一种或另一种方式跟踪状态。如果您正在跟踪状态,那么 1) 从打开文件的那一刻起,对于要在文件中编写代码的每个人来说,这应该是显而易见的,并且 2) 跟踪大量状态是一种巨大的代码气味,如果我的开发人员正在这样做,那么我希望它是显而易见的。所以把它放在顶部,恕我直言,让糟糕的代码更加明显,并作为对未来编辑该类的人的警告。
尽管如此,绝对将您的公共/受保护与私有字段和成员分开,因为对其中一个感兴趣的人可能对另一个不感兴趣。
【讨论】: