包名称的Java代码约定

时间:2011-11-23 13:50:49

标签: java coding-style package

  

可能重复:
  what is the convention for word separator in java package names?

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

3 个答案:

答案 0 :(得分:13)

来自Java package naming conventions @维基百科(重点补充):

  

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

     

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

     

例如,如果加拿大的一个名为MySoft的组织创建了一个   用于处理分数的包,命名包ca.mysoft.fractions   将分数包与另一个类似的包区分开来   由另一家公司创建。如果一家名为MySoft的德国公司也是   创建一个分数包,但将其命名为de.mysoft.fractions,然后   这两个包中的类是以独特的方式定义的   命名空间。

     

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


另见:

答案 1 :(得分:1)

惯例是在整个过程中使用小写。

JLS here.

中提供了更多信息

答案 2 :(得分:1)

Camel-casing软件包名称不是我喜欢的。如果包名中有多个单词,请考虑以下内容:

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

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

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

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