在哪里放内部课程?

时间:2011-01-18 23:11:43

标签: java coding-style inner-classes

有些人可能会认为这是有史以来最不重要问题的候选人。然而代码风格对我来说是一个非常重要的主题,我想确保以可读的方式编写代码 - 对我和大多数开发人员而言。

这就是为什么我想知道你们在哪里宣布你的内心课程。

我遵循以下方法排序方案,因为它很常见:

public void foo() {
    usedByFoo();
}

private void usedByFoo() {
}

public void bar() {
}

我从上到下订购它们,每个方法都接近使用它的位置。

现在我可以对内部类做同样的事情,比如:

class Outer {
    private Inner inner;

    private class Inner {};

    public Outer() {
    }

    ...
}

我认为这是我要遵循的最一致的风格,但我也经常看到人们在文件的顶部或底部声明所有内部类。

根据我的订购方式,我应该遵循哪种风格?最常见的方法是什么?

2 个答案:

答案 0 :(得分:51)

我会在文件的底部声明内部类 - 通常你对它们的实现不感兴趣而只是想要使用你的主类'方法,所以它们不应该妨碍它。

答案 1 :(得分:9)

我喜欢的风格是把它们放在最有意义的地方。通常这是在底部所以他们已经走了,但有时我发现将它们放在某组方法之前更有意义(如果这些是使用内部类的方法。)

如果这个类因为大量的方法和内部类而变得过于笨重,那么它可能是一个糟糕的设计选择(凝聚力太低了。)我有时会让课程偶然得到这种方式而且它们处理起来很糟糕后来 - 这些天如果我能看到一个这样的话,我通常会重构它,甚至可能在它自己的包中。如果你达到了你有这么多内部课程的地步,你不知道如何处理它们,我会采用这种方法。甚至还有一些建议不要因为这个原因而反对使用内部类(尽管我不同意 - 如果使用得当它们是宝贵的资源,你只需要注意它们不会失控。