java包结构的反向域名有什么意义?

Vai*_*esh 31 java packages

为什么我们使用像com.something这样的反向域名.或者org.something.java包的结构?我知道这会带来某种独特性,但为什么我们需要这种独特性呢?

Cla*_*diu 35

关于我们为什么这样做逆转:想象一下,你有两个重要的包,一个会计包和一个图形包.如果您以"直接"顺序指定了这些:

accounting.mycompany.org
graphics.mycompany.org
Run Code Online (Sandbox Code Playgroud)

然后它意味着有一个主要accounting包,其子部分用于mycompany,并且包的子部分称为org您实际使用的包.但是,你想要这个:

org.mycompany.accounting
org.mycompany.graphics
Run Code Online (Sandbox Code Playgroud)

这更有意义.在组织(org)的所有包中,你mycompany特别关注它,它有两个子包,即accounting和它们graphics.

  • +1.请注意(不幸的是?)Java不支持子包.与完全不相关的包相比,子包与其父包(就可见性而言)更近.它当然对代码组织目的仍然有用. (7认同)
  • 它仅意味着 org 是具体的包,因为您并没有真正完全理解您的示例。如果第一部分是具体包怎么办?那是不可能的吗?-1 稻草人,从右到左阅读的国家在这里会不同意:P (2认同)

Lau*_*ves 31

全局唯一的包名称可避免命名来自不同来源的库之间的冲突.使用域名注册表而不是创建全局名称的新中央数据库.来自JLS:

用于生成唯一包名称的建议约定仅仅是在现有的,广为人知的唯一名称注册表之上搭载包命名约定的方式,而不是必须为包名创建单独的注册表.

  • @Fredrik实际上没有执行DNS查找,但JLS中提到的"广为人知的唯一名称注册表"是"域名系统". (5认同)
  • DNS真的没有任何关于它的东西(无论如何+1) (3认同)