Java 将所有类嵌套在单个公共类中的利弊

Java 将所有类嵌套在单个公共类中的利弊,java,rabbitmq,Java,Rabbitmq,所以我在Java中见过这样的方法 public class AMQP { public static class Connection { ... } public static class Channel { ... } ... } 我看到的专业人士。。一个可能的优势是: 用户只需导入AMQP 并将它们用作例如AMQP.Connection这是一种避免Java中完整类名的解决方案(例如com.lol.a.b.c.AMQP.Connection)和避免名称冲突(即Co

所以我在Java中见过这样的方法

public class AMQP {
    public static class Connection { ... }
    public static class Channel { ... }
    ...
}
我看到的专业人士。。一个可能的优势是:

  • 用户只需导入
    AMQP
    并将它们用作例如
    AMQP.Connection
    这是一种避免Java中完整类名的解决方案(例如
    com.lol.a.b.c.AMQP.Connection
    )和避免名称冲突(即
    Connection
    不是类的原始名称)
我看到的最大缺点是:

  • 所有内容都在一个文件中(是的,
    AMQP.java
    是大约2000行代码)
所以:
为什么要引入这样的设计?

将所有内容都放在一个文件中本身并不是一个缺点。缺点来自易读性降低、紧密耦合和其他此类问题


但是,如果这些类很小,可以理解为将它们作为静态嵌套类包含。基于这段代码的体系结构很难说得太多。

这将扼杀模块化。我从未见过这样的方法(在Java中),这在一个非常流行的消息传递库(rabbit mq)中使用。。所以我在想。。也许会有一场表演的胜利,或者什么?其实没那么特别。人们似乎对什么是对什么是错有着奇怪的观念。编程并不是一门精确的科学。选择这些内部类可能有特定的原因,也可能没有。