【问题标题】:Placement of instance variable declarations实例变量声明的放置
【发布时间】:2008-10-20 14:10:13
【问题描述】:

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

【问题讨论】:

    标签: java variables coding-style


    【解决方案1】:

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

    【讨论】:

    • 类的用户不应该首先查看源代码的内部(应该记录用法,并且无需查看源代码即可访问)。有人应该查看源代码的唯一原因是了解内部工作原理,这就是为什么我不建议将私有字段放在底部。
    【解决方案2】:

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

    但是,根据我的经验,将它们放在顶部更为常见,这是 Java style guidelines 推荐的做法,所以我会这样做。

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

    【讨论】:

      【解决方案3】:

      这主要是(如果不是完全)个人喜好。我喜欢他们在顶部,但我真的无法给出更好的理由,那就是我已经习惯了。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          我一直认为,如果您有一个私有类级别的变量,那么您要么硬编码了配置,要么以一种或另一种方式跟踪状态。如果您正在跟踪状态,那么 1) 从打开文件的那一刻起,对于要在文件中编写代码的每个人来说,这应该是显而易见的,并且 2) 跟踪大量状态是一种巨大的代码气味,如果我的开发人员正在这样做,那么我希望它是显而易见的。所以把它放在顶部,恕我直言,让糟糕的代码更加明显,并作为对未来编辑该类的人的警告。

          尽管如此,绝对将您的公共/受保护与私有字段和成员分开,因为对其中一个感兴趣的人可能对另一个不感兴趣。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-11-28
            • 1970-01-01
            • 2012-03-10
            • 2015-06-28
            • 1970-01-01
            • 1970-01-01
            • 2010-12-09
            • 1970-01-01
            相关资源
            最近更新 更多