【问题标题】:Java code convention for package names [duplicate]包名称的 Java 代码约定 [重复]
【发布时间】:2012-01-04 19:28:39
【问题描述】:

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

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

【问题讨论】:

  • @BeauGrantham 在链接中有正确答案。我想这会使这成为一个重复的问题。
  • 对不起。这个问题确实重复了另外两个问题。

标签: java coding-style package


【解决方案1】:

来自Java package naming conventions@维基百科(已添加重点):

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

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

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

消除包名称歧义的完整约定和规则 不能直接使用外网域名时的命名包 作为包名称在 Java 语言的第 7.7 节中进行了描述 规范。


另见:

【讨论】:

  • 惯例是不使用驼色套管。我将维基百科摘录的相关部分加粗以使其更加明显。
【解决方案2】:

惯例是通篇使用小写。

更多信息请访问 JLS here.

【讨论】:

    【解决方案3】:

    骆驼式的包名不是我喜欢的。如果包名中有多个单词,我会考虑以下几点:

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

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

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

    原因是软件包名称反映了主机操作系统上的目录。在 Linux 上“com.dreamcom.objectInterfaces”和“com.dreamcom.objectinterfaces”是不同的,而在 Windows 上它们是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 2011-02-12
      • 2011-09-10
      • 2014-10-24
      • 2019-11-10
      • 2018-09-28
      • 2016-07-08
      相关资源
      最近更新 更多