组合包名称的命名约定

Posted

技术标签:

【中文标题】组合包名称的命名约定【英文标题】:Naming conventions of composed package names 【发布时间】:2018-09-28 04:05:03 【问题描述】:

我想创建一个名为 form validator 的包。

这样写比较好

form_validator, formValidatorformvalidator?

我想提一下我想避免form.validator。而form-validator禁止

【问题讨论】:

com.company.form.validator? 其实我想避免form.validator 应该小写到avoid conflict with the names of classes or interfaces. 可能会有很多帮助:***.com/a/3179277/9192223 我觉得formvalidator是最传统的。 【参考方案1】:

在 Java 中,包名全部小写。这意味着以下将是最理想的包装名称。

formvalidator

这也被接受。

form_validator 

【讨论】:

【参考方案2】:

最传统的是第三个:formvalidator

Google Java Style guide 备注:

5.2.1 包名称

包名都是小写的,连续的单词简单地连接在一起(没有下划线)。例如,com.example.deepspace,而不是 com.example.deepSpacecom.example.deep_space

正如@teppic 所说,Oracle Java Docs 表示

包名全部小写,避免与类名或接口名冲突。

【讨论】:

【参考方案3】:

包名全部小写,以避免与类名或接口名冲突。所以

form_validatorformvalidator

详情见here。

【讨论】:

【参考方案4】:

来自documentation 包命名约定:

包名全部小写,避免与类名或接口名冲突

所以这会给你以下两种可能性:

form_validator
formvalidator

实际上文档也清楚地表明,下划线出现在包名中时起着特殊的作用:

如果包名称以数字或其他非法字符作为 Java 名称的开头,或者包名称包含保留的 Java 关键字,例如“int”...建议的约定是添加下划线。

因此,仅在特殊情况下才建议使用下划线,而您的命名问题似乎并不属于这种情况。所以我推荐formvalidator作为包名。

【讨论】:

"因此,仅在特殊情况下才建议使用下划线"。尽管您可能是对的,但这不是该文档所说的。您引用的 Oracle 文档文本讨论了当域名作为包名称无效时如何制作有效的包名称,但它确实不是说这两个都不建议在特殊情况下使用下划线。但@srath 的回答确实说这(没有下方)是谷歌的一种风格。

以上是关于组合包名称的命名约定的主要内容,如果未能解决你的问题,请参考以下文章

Android - 包名称约定

python基础 13 类命名空间于对象实例的命名空间,组合方法

Excel VBA - 组合宏以重命名工作表和宏以在一个宏中合并工作表

类命名空间与对象实例的命名空间和下面向对象的组合用法

python面向对象之命名空间及组合

类命名空间与对象实例的命名空间 and 面向对象的组合用法