在哪里放非公开课?

And*_*ndy 3 java coding-style

比方说,我有一个Java类一个,这需要一个辅助类.该助手类仅用于A,没有其他用途.此外,B不需要以任何方式使用A(不要调用方法或访问字段).

所以,问题是:在哪里放B

有以下选项:

  1. 静态嵌套类.在我看来,它只是使代码不那么清晰(更多的缩进等).

    public class A {
        ...
        private static class B { ... }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 同一来源的非公开课.我喜欢这个选项.

    public class A {
        ...            
    }
    
    class B { 
        ... 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 非公开类在单独的来源中.看起来这个选项有一点开销.

    // A.java
    public class A {
        ...            
    }
    
    // B.java
    class B { 
        ... 
    }
    
    Run Code Online (Sandbox Code Playgroud)

现在,我更喜欢第二种选择.你对此有什么想法?什么是最佳做法?它有权威来源吗?

And*_*s_D 5

我强烈赞成选项(1).这个想法是,只有类B需要该类,A而选项(1)是明确表达该意图的唯一选择:类B是类的一部分A.