今天,我在一个项目中命名了一个包,该包将包含与一个称为“访问结构”的概念相关的代码。
现在,命名这个包"com.myemployer.project.component.accessstructures“似乎没有吸引力,很难阅读,因为三重"S”。(较高级别的包实际上没有命名为"project“和"component")。
我很想用"...component.access_structures“
我在甲骨文网站上找不到Java约定中提到的任何内容。一个简短的网络搜索什么都没有。
像这样的名字的官方惯例是什么?
发布于 2014-09-09 18:21:00
包名是用所有小写的编写的,以避免与类或接口的名称发生冲突。 公司使用他们的反向互联网域名开始他们的包名--例如,com.example.mypackage用于一个名为mypackage的包,这个包是由example.com的程序员创建的。 单个公司内部发生的名称冲突需要由该公司内部的约定来处理,也许可以在公司名称之后包括区域或项目名称(例如,com.example.region.mypackage)。 在某些情况下,internet域名可能不是有效的包名。如果域名包含连字符或其他特殊字符,如果包名以数字或其他字符作为Java名称的开头是非法的,或者如果包名包含保留的Java关键字(如"int“),则可能发生这种情况。在这种情况下,建议的约定是添加下划线。
虽然这个文本没有指定您的确切大小写,但它确实指出,对于无效的包名,我们应该使用下划线。有人可能会说,accessStructures是我们如何在Java中定义方法的,因此这样命名包可能会让人感到困惑。总的来说,这真的取决于你。
如果你想遵守这个惯例,我相信你应该把你的包裹命名为:
com.myemployer.project.component.access_structures此外,您还可以查找同义词,并找到可以减少混淆的替代方法。我很快就发现了一些:
发布于 2014-09-09 18:08:24
我认为这方面没有任何标准。人们遵循不同的命名规则,以方便和可读性。但是大多数程序员认为camel大小写命名最方便。你可以把它命名为accessStructure
找到一个甲骨文,它建议将包名与所有小写字母一起使用
包名用所有小写编写,以避免与类或接口的名称发生冲突。
发布于 2014-09-09 18:30:40
根据文档,您不能使用camelCase来命名包。在某些情况下,使用snake_case命名包是可以的,但如果您不能正确使用域,则更合适,因为其中包含连字符或以数字开头。但它必须是规则的例外,而不是规则。
如果我是你,我会改头换面的。例如:accessstructures -> accesscore
https://stackoverflow.com/questions/25751044
复制相似问题