在哪里放内部类?
问题描述:
有人可能会认为这是所有时代最不重要问题的候选人。然而,代码风格对我来说是一个非常重要的话题,我想确保我以可读的方式编写代码 - 对我和大多数开发人员。在哪里放内部类?
这就是为什么我想知道你们在哪里宣布你的内部类。
我下面的下面的方法排序方案,因为这是很常见:
public void foo() {
usedByFoo();
}
private void usedByFoo() {
}
public void bar() {
}
我命令他们从上到下,每一个方法接近它使用的地方。
现在我可以做同样的内部类,像这样:
class Outer {
private Inner inner;
private class Inner {};
public Outer() {
}
...
}
我觉得这是最一致的风格跟着我,但我也经常看到人们要么声明所有的内部类在文件的顶部或底部。
鉴于我的订购方法,我应该遵循哪种风格?最常见的做法是什么?
答
我会在文件的底部声明内部类 - 通常你对它们的实现不感兴趣,只想到你的主类的方法,所以它们不应妨碍。
答
我的首选风格是将它们放在任何看起来最有意义的地方。通常情况下,它们位于底部,所以它们不在行,但有时我发现将它们放在某些方法之前(如果这些方法是使用内部类的方法)会更有意义。
如果尽管类和方法负载过于笨重,但它可能是一个糟糕的设计选择(内聚力太低)。我有时候让类错误地通过这种方式来处理,后来处理会很糟糕 - 这些日子里,如果我可以看到一个这样做,我通常会重构它,甚至可能会将它重构成它自己的包。如果你的内部课程太多,你不知道如何处理他们,我会采取这种方法。甚至有人建议不要使用内部类(因为这个原因)(虽然我不同意 - 它们是一个宝贵的资源,如果使用得当,你只需要小心他们不会失去控制。)
我觉得代码风格太主观...也许我错了,只是记录下地狱的东西 – 2011-01-18 23:13:53
也许这更属于http://programmers.stackexchange.com/ – 2011-01-18 23:40:22