为什么反向DNS表示法用于包命名?

Sim*_*oV8 5 java dns packages reverse-dns notation

使用反向DNS包符号的技术原因是什么?或者只是一个惯例?

vzy*_*lly 6

我认为它现在大多只是一个惯例,但我会说它有助于整理下来的事情.

以下是我为什么这么说的几个例子: com.vzy.gui.*com.vzy.io.*

  • 经过他们,我们看到,com并想,"哦,嘿,这是一个公司,使这个"
  • 然后vzy想想,"制造这个的人很吵!"
  • 然后gui,io这导致我们看到"这个与GUI一起工作,而另一个适用于IO,很酷."

我认为另一种展示这种方式的好方法是将其切换回来,看看它看起来如何......

import ArrayList.util.java
import BorderLayout.awt.java
import File.io.java
import JButton.swing.javax
import JFrame.swing.javax
import JLabel.swing.javax
import JOptionPane.swing.javax
import JPanel.swing.javax
import JScrollPane.swing.javax
import JSlider.swing.javax
import LinkedBlockingQueue.concurrent.util.java
import PrintWriter.io.java
import Scanner.util.java
import SwingUtilities.swing.javax
Run Code Online (Sandbox Code Playgroud)

要么

import java.awt.BorderLayout
import java.io.File
import java.io.PrintWriter
import java.util.ArrayList
import java.util.Scanner
import java.util.concurrent.LinkedBlockingQueue
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JOptionPane
import javax.swing.JPanel
import javax.swing.JScrollPane
import javax.swing.JSlider
import javax.swing.SwingUtilities
Run Code Online (Sandbox Code Playgroud)


Kev*_*oke 6

Sun用于维护Java编码标准指南 - 您可以在此处找到Oracle站点上的存档副本 - 根据此站点,自1999年以来一直未维护该站点:http: //www.oracle.com/technetwork/java/codeconvtoc- 136057.html

包含推荐包名称的部分确实建议首先使用拥有组织的域名,顶级域名:http: //www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html#367

唯一包名称的前缀始终以全小写ASCII字母书写,应该是顶级域名之一,目前是com,edu,gov,mil,net,org,或者是英文双字母代码之一识别ISO标准3166,1981中规定的国家.

软件包名称的后续组件根据组织自己的内部命名约定而有所不同.此类约定可能指定某些目录名称组件是分区,部门,项目,计算机或登录名.

我认为这已成为一段时间内公认的标准,尽管今天没有严格遵守.你没有理由不为你的项目或组织设计一个最适合你的命名模式 - 没有技术理由说明为什么它必须遵循这个域名模式.

今天遵循的典型模式是更高级别的分组(组织或项目名称),然后是越来越具体的分组,直到名称最后的大多数特定功能或技术分组.