包名称的Java代码约定

包名称的Java代码约定,java,coding-style,package,Java,Coding Style,Package,可能重复: 我想知道对于包含几个单词的包名是否有一些代码约定。例如,包名com.dreamcom.objectInterfaces。驼峰案例适用于这种情况吗?摘自@Wikipedia(重点添加): 包通常是使用分层命名模式定义的,带有 层次结构中由句点(.)分隔的级别(发音为“点”)。 虽然在命名层次结构中较低的包经常被引用 作为中较高的相应包的“子包” 在层次结构中,包之间几乎没有语义关系。 Java语言规范建立了包命名约定 避免两个已发布的包具有相同的 名称命名约定描述了如何创建唯一的

可能重复:

我想知道对于包含几个单词的包名是否有一些代码约定。例如,包名
com.dreamcom.objectInterfaces
。驼峰案例适用于这种情况吗?

摘自@Wikipedia(重点添加):

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

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

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

用于消除包名称歧义的完整约定和 无法直接使用Internet域名时的命名包 Java语言第7.7节中描述了作为包名的 规格


另见:

惯例是始终使用小写


更多信息可以在JLS中找到,驼峰式包装的名称不是我喜欢的。在包名称中有多个单词,我考虑如下:

  • “com.dreamcom.interfaces”还不够好吗

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

  • 如果不是,那么宁可考虑“COM.Voice COM。ObjutoCuto界面”而不是CAMEL外壳。
    原因是包名镜像了主机操作系统上的目录。在Linux上,“com.dreamcom.objectInterfaces”和“com.dreamcom.objectInterfaces”是不同的,而在Windows上它们是相同的

    @BeauGrantham在链接中找到了正确答案。我想这会使这成为一个重复的问题。对不起。这个问题实际上使另外两个问题变得复杂。惯例是不使用骆驼壳。我将维基百科摘录的相关部分加粗,使其更加明显。