在java中使用嵌套类的好处

Rez*_*eza 4 java software-design

在Java中使用嵌套类有什么好处?在许多示例中,在我看来它只会增加设计的复杂性.是否有任何示例显示使用嵌套类与复合模式进行比较的能力?

Dyl*_*lan 9

为什么使用嵌套类?

使用嵌套类有几个令人信服的理由,其中包括:

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

(来自文档)

我认为我能想到的最好的情况是,在我的脑海中将是某种集合类(树,链表,地图等)中节点的实现.没有理由将节点实现暴露给公众,并且由于它仅由集合的内部使用,因此将节点类嵌套在集合类中是有意义的.

有点像..

public class MyTree {
  private class TreeNode {
    //implementation details...
  }

  //public api, where implementation references TreeNode
}
Run Code Online (Sandbox Code Playgroud)


Tom*_*ink 4

我会在某种情况下使用嵌套类,在这种情况下,我主要需要在周围的类中使用该类。这可能是事件监听器之类的用法。

或者当我需要实现特定接口作为 API 方法的参数并且仅在该特定顶级类中创建此结构时。

这可以避免创建更多的顶级类 - 弄乱您的代码库 - 对任何其他类都没有用。

希望这可以帮助。:)