这个叫什么?这是设计模式还是惯例? (接口/类)

时间:2011-12-14 04:05:00

标签: java oop interface

最近,当我查看其他代码时,我注意到我看到一个文件有多个接口和类 - 有时会扩展这些接口。

这叫什么?这是好/坏的做法吗?

另外,如果这是一个好习惯,有没有关于如何正确使用它的文件?如果没有,是否有一些其他文档关于使用最有效的接口以及它们的“最佳实践”?

他们使用的地方是:Google IoSched

4 个答案:

答案 0 :(得分:3)

这看起来像enums using interfaces pattern(或者现在反模式)。既然Java有enumsstatic imports,就没有理由使用它。

答案 1 :(得分:2)

它们是内部(嵌套)类/接口,当没有包含类时,类或接口没有意义时使用,或者通常只由包含类访问,或者在与包含类紧密耦合的上下文中使用。

它们也存在于JSE中,例如Map.Entry

答案 2 :(得分:1)

作为另一个类成员的类的术语是nested class。正如教程所解释的那样,这有几个原因:

  • 这是一种逻辑分组仅在一个地方使用的类的方法。
  • 它增加了封装。
  • 嵌套类可以使代码更具可读性和可维护性。

当嵌套类与封闭类紧密相关时,通常会使用此技术。 (例如,Map.EntryMap的嵌套类,Character.UnicodeBlockCharacter的嵌套类。)

嵌套接口提供相同的功能 - 定义与封闭类紧密相连的接口。

答案 3 :(得分:0)

这些是内部接口(它们本身就是静态内部接口,即使它们没有用修饰符static明确标记。它们用于定义一个与它在其中定义的类如此紧密相关的接口。在课堂之外定义它是不值得的。