最近,当我查看其他代码时,我注意到我看到一个文件有多个接口和类 - 有时会扩展这些接口。
这叫什么?这是好/坏的做法吗?
另外,如果这是一个好习惯,有没有关于如何正确使用它的文件?如果没有,是否有一些其他文档关于使用最有效的接口以及它们的“最佳实践”?
他们使用的地方是:Google IoSched
答案 0 :(得分:3)
这看起来像enums using interfaces pattern(或者现在反模式)。既然Java有enums和static imports,就没有理由使用它。
答案 1 :(得分:2)
它们是内部(嵌套)类/接口,当没有包含类时,类或接口没有意义时使用,或者通常只由包含类访问,或者在与包含类紧密耦合的上下文中使用。
它们也存在于JSE中,例如Map.Entry。
答案 2 :(得分:1)
作为另一个类成员的类的术语是nested class。正如教程所解释的那样,这有几个原因:
当嵌套类与封闭类紧密相关时,通常会使用此技术。 (例如,Map.Entry是Map的嵌套类,Character.UnicodeBlock是Character的嵌套类。)
嵌套接口提供相同的功能 - 定义与封闭类紧密相连的接口。
答案 3 :(得分:0)
这些是内部接口(它们本身就是静态内部接口,即使它们没有用修饰符static
明确标记。它们用于定义一个与它在其中定义的类如此紧密相关的接口。在课堂之外定义它是不值得的。