【发布时间】:2013-04-18 13:50:32
【问题描述】:
在java中,你可以有内部类。从设计的角度来看,我很好奇这是否有任何好处。
我最初的想法是,在类中使用单独的文件可以更清晰地将事物分成可重用的模块。通过这样做,如果其他类希望使用该其他类,它们也可以创建自己的实例。对我来说,似乎避免内部类可能是可扩展性和代码重用的更好设计,并且在处理新项目时,通常很难判断该类是否会被重用......所以我觉得有单独的类是要走的路。
我问这个问题是因为我接手了一个有很多这些的项目......这让我觉得以前的开发人员可能只是懒惰或不熟悉 IDE。但我想确保我不会错过这些内部类所具有的任何好处。如果有好处可以告诉我,然后我可以确认以前的开发者是否在利用这些好处。
【问题讨论】:
-
你真的是指内部类,还是[静态]嵌套类?
-
一方面,内部类可以访问外部类的成员,因此有时它有助于对象/类的封装(避免不必要的 getter 和 setter)。
-
他们在做内部类,但我也欢迎任何关于静态嵌套类的 cmets。
-
Builder 模式例如基于内部类。 Guava 也经常使用它们Builder
-
发现了一些有趣的东西,Effective Java Ch.4 Item 22 很好地分解了静态成员类、非静态成员类、匿名类和本地类。
标签: java inner-classes