Java包com和org


Answers:


113

根据Sun的说法,应根据域名的倒序对软件包进行命名空间,然后根据您的意愿进行命名。大多数公司或组织都有一个.com.org域名,因此大多数软件包都以com.或开头org.。引用《Sun Code Conventions》

唯一软件包名称的前缀始终以全小写ASCII字母书写,并且应为顶级域名之一,当前为com,edu,gov,mil,net,org或英语的两个字母代码之一根据1981年的ISO标准3166确定国家。

包名称的后续组件根据组织内部的内部命名约定而有所不同。这样的约定可能会指定某些目录名称组件是部门,部门,项目,计算机或登录名。

他们给出的例子清楚地表明您将使用公司的DNS名称:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

您还将看到edu.net.包都在野外为好,虽然他们是不太常见的。


3
如果公司更改域名怎么办?
莱昂纳多·雷尔

4
@LeonardoRaele通常,在这种情况下,您会进入一个痛苦的世界;-)更严重的是,有两个选择,重命名所有类,无论代码是内部的,它们都可以工作,或者使用旧名称保留它,因为这很可能无论如何仍然是独一无二的。
保罗·瓦格兰

2
不属于组织或没有网站的最佳命名约定是什么?我以前见过me.username建议,但是我不确定这是最好还是唯一的标准。
亚伦弗兰克

2
@AaronFranke我见过人们使用他们的GitHub用户名作为域,例如:com.guthub.pwagland.xxx,其主要目的是获得一个唯一的名称,这样您就不必更改它了。永远不会与别人选择的名字相冲突。
保罗·瓦格兰

1
如果您的公司有2个域名,即wordpress.com和wordpress.org
怎么办

48

您还可以将包名称视为反向互联网域名(在现实世界中通常也是如此,例如,请参阅org.apache.commonshttp://commons.apache.org相关的域名)。然后,com(商业)org(组织)实际上是顶级域名

程序包名称通常仅用于标识您要面对的代码的制造商/供应商。


16
并确保包裹名称的唯一性。我认为这是一个非常聪明的方式做到这一点
托尔比约恩Ravn的安徒生

2
我可能是错的,但是如果每个人都打算使用com,那么在这点上com听起来是不必要的。我宁愿只使用公司名称。我更喜欢它们为其他打包系统(如npm和composer)使用的命名系统。他们使用“用户名/程序包名称”或类似名称。因此,我将在Java中将程序包命名为“ username.packagename”
OzzyTheGiant

9

公司通常com在命名软件包时使用,com后跟公司名称。例如,您com.sun在JVM中有软件包。

org包的前缀主要用于通过非营利组织或开放源代码,如Apache,W3C等


对于内部代码使用comapany的.com URL,对于任何公开的代码使用.org的约定是一个好主意。这就是我从这个答案中总结出来的。
丹尼斯

3
丹尼斯,我认为这不是一个好主意。这意味着释放代码将更改程序包名称,并且会破坏使用原始名称的内部软件。另外,如果exam​​ple.com和example.org属于不同的公司,并且都希望发布Java代码,则会发生命名空间冲突。
proski 2015年

3

请参阅Oracle文档以获取软件包命名

有关类/接口/注释/等标准命名,请参见命名约定

包名称和类标准语法:
<反向的域>。<项目名称>。<controller / dao / service / handlers等>。<您的类>

example1 :(此处是域:-“ stackoverflow.com”,项目:-“ Test”)
com.stackoverfllow.test.handler.TestHandler

example2 :(此处为域:-“ www.google.co.in”,项目:-“ My Proj”)
in.co.google.myproj.controller.MainController

但是对于保留域(例如java。*,javax。*,sun。*等),您应该获得oracle社区的许可

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.