包名称的Java代码约定

可能重复:
java包名中单词分隔符的约定是什么?

我想知道是否有包含多个单词的包名称的代码汇编。 例如包名com.dreamcom.objectInterfaces 。 骆驼的情况适合这种情况吗?

从Java包命名约定 @ Wikipedia(重点补充):

包通常使用分层命名模式定义,层次结构中的级别用句点(。)(发音为“点”)分隔。 虽然命名层次结构中较低的包通常被称为层次结构中较高的相应包的“子包”,但包之间几乎没有语义关系。 Java语言规范建立了包命名约定,以避免两个已发布的包具有相同名称的可能性。 命名约定描述了如何创建唯一的包名称,以便广泛分发的包具有唯一的命名空间。 这使得包可以单独,轻松地自动安装和编目。

通常,包名称以组织的顶级域名开头,然后是组织的域,然后是以相反顺序列出的任何子域。 然后,组织可以为其包选择特定名称。 包名称应尽可能为小写字符。

例如,如果加拿大的一个名为MySoft的组织创建了一个处理分数的包,则命名包ca.mysoft.fractions将分数包与另一个公司创建的另一个类似包区分开来。 如果名为MySoft的德国公司也创建了一个分数包,但将其命名为de.mysoft.fractions ,那么这两个包中的类将在一个唯一且独立的命名空间中定义。

Java语言规范的第7.7节描述了当Internet域名不能直接用作包名时,用于消除包名称和命名包规则的完整约定。


也可以看看:

  • Java语言规范§7.7唯一包名称
  • 你真的在反向域中使用java中的包命名吗?

惯例是始终使用小写。

有关更多信息,请参见JLS 。

骆驼套管包装名称不是我喜欢的。 如果包名中有多个单词,我会考虑以下内容:

  1. “com.dreamcom.interfaces”不够好吗?

  2. “com.dreamcom.object.interfaces”会起作用吗?

如果没有,那么宁愿考虑“com.dreamcom.objectinterfaces”而不是骆驼套管。

原因是程序包名称镜像主机操作系统上的目录。 在Linux上,“com.dreamcom.objectInterfaces”和“com.dreamcom.objectinterfaces”是截然不同的,而在Windows上它们是相同的。