组合包名称的命名约定
Posted
技术标签:
【中文标题】组合包名称的命名约定【英文标题】:Naming conventions of composed package names 【发布时间】:2018-09-28 04:05:03 【问题描述】:我想创建一个名为 form validator
的包。
这样写比较好
form_validator
,
formValidator
或
formvalidator
?
我想提一下我想避免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.deepSpace
或com.example.deep_space
。
正如@teppic 所说,Oracle Java Docs 表示
包名全部小写,避免与类名或接口名冲突。
【讨论】:
【参考方案3】:包名全部小写,以避免与类名或接口名冲突。所以
form_validator
或
formvalidator
。
详情见here。
【讨论】:
【参考方案4】:来自documentation 包命名约定:
包名全部小写,避免与类名或接口名冲突
所以这会给你以下两种可能性:
form_validator
formvalidator
实际上文档也清楚地表明,下划线出现在包名中时起着特殊的作用:
如果包名称以数字或其他非法字符作为 Java 名称的开头,或者包名称包含保留的 Java 关键字,例如“int”...建议的约定是添加下划线。
因此,仅在特殊情况下才建议使用下划线,而您的命名问题似乎并不属于这种情况。所以我推荐formvalidator
作为包名。
【讨论】:
"因此,仅在特殊情况下才建议使用下划线"。尽管您可能是对的,但这不是该文档所说的。您引用的 Oracle 文档文本仅讨论了当域名作为包名称无效时如何制作有效的包名称,但它确实不是说这两个都不建议在特殊情况下只使用下划线。但@srath 的回答确实说这(没有下方)是谷歌的一种风格。以上是关于组合包名称的命名约定的主要内容,如果未能解决你的问题,请参考以下文章
python基础 13 类命名空间于对象实例的命名空间,组合方法