为什么java中的包命名在开头有TLD

时间:2012-05-04 10:09:53

标签: java

为什么java建议在包名的开头加上TLD,即为什么必须

package com.example.pack;

它也可以

package pack.example.com;

只是想知道决定将TLD放在最开始的原因可能是什么。

7 个答案:

答案 0 :(得分:3)

这个约定记录在here,它已被证明并适用于很多事情。

Universe是com,可以是SGORG或任何顶级域名:)。

关注您的域example

您的项目pack

关注您的图层web | ejb | data

com.example.pack.web
com.example.pack.ejb
com.example.pack.data
com.example.project2.web
com.example.project2.ejb
com.example.project2.data
com.singtel.projecta.web
com.singtel.projectb.data

答案 1 :(得分:3)

包对应于文件系统中的目录。 pack.example.com和pack.example2.net都会在同一个目录中,即使url建议它们不相关,但是使用com.example.pack和net.example2.pack,相关的包在同一个目录中

答案 2 :(得分:0)

这是从更一般到更具体的惯例,而不是相反。

同样,我们写道:

  • package_nameclass_name(而不是class_namepackage_name);
  • object member;。
  • outer_class inner_class;。

等等。

答案 3 :(得分:0)

Java包名称应始终从最具体到最具体的方式读取。 因此,它应该始终首先从域名开始。

答案 4 :(得分:0)

有一个很好的理由是,类名是前缀而不是后缀和包名 - 所以你在每个点之后都朝着相同的方向移动。此外,包名称映射到目录名称,这也强制执行最广泛的第一个订单。

答案 5 :(得分:0)

在树上,树干是叶子不太通用的主要部分。

包名称是树。

将类路径中的所有类中的类搜索想象为您编写的类。你可以开始com。* com.example。* etc等。直到你找到你的那个。

答案 6 :(得分:0)

主要动机是通过分层组织类和资源(如文件系统)来避免命名空间冲突。将文本文件引用为MyDoc.txt\My Documents\C:会很尴尬。使用您的TLD名称,可以更自然地将事物从更一般的组织到更具体的组织。