Java命名约定与缩略语
什么是以下Java类的正确名称: DVDPlayer
或DvdPlayer
?
由于看起来答案是在Java中没有单一的标准,所以我想指出.Net框架devise指南的确指明了这一点。
现在,在关注主题之前,请记住,Java和.Net Framework的类命名准则非常相似,这使.Net准则成为有说服力的参考。
一般规则
这两个指导方针build议只使用首字母缩略词时,首字母缩写是众所周知和了解。 DVD或XML就是一个很好的例子,因为当你立即识别它们的时候,识别扩展版本需要更长的时间。
缩略语
“.Net框架指南”build议不要使用缩写(与缩略语相反),但可以在标识符中使用两个常用缩写“ID”和“OK”。 当使用缩写时,总是使用混合大小写Id
除了camelCase标识符的第一个字(与PascalCase标识符相反)。
在Java中,这个约定只有一些时间。 看看如何混合拼写getID
和getId
在JCL中。 (在页面中间向下滚动)。 然而,在Java 8版本中 ,getId被越来越多地使用,这暗示了现在的PascalCase约定是优选的。 尽可能避免完全缩写。
简短的首字母缩略词
.Net框架指南指出,像“IO”这样的两个字母首字母缩略词,对于这两个字母应该是相同的情况。 因此,对于PascalCase标识符(就像类名),您可以获得DBRate
,而对于camelCase标识符(如本地variables),您可能拥有ioChannel
。
这绝对是Java中的stream行惯例。
Long首字母缩写词
.Net框架的指导方针build议,首字母缩写词三个字母或更长时间使用混合大小写的PascalCase和camelCase标识符,除了camelCase标识符的第一个字。 因此对于一个类名你可能有XmlDocument
,而一个局部variables可能被命名为httpRequest
。
Java中并不总是遵循这个约定。 四个字母首字母缩略词似乎通常使用混合的情况下,但即使是三字母缩写JCL是不一致的。 他们中的大多数似乎都是大写字母,比如“URL”,“XML”,“SQL”和“DOM”,但也有一些例外,比如“Jar”。
结论
对于Java:
对于4+字母首字母缩写词,使用混合大小写。 标准库这样做,这是很有道理的。
对于3字母首字母缩写词,您可以像JCL一样使用全部大写字母,也可以使用.Net框架混合使用的大小写字母。 无论哪种方式,一致。
对于2个字母的首字母缩写词,请全部使用大写字母。
对于2个字母缩写,Java并没有真正的标准,但我build议使用混合套装,除非与其他名称的结合会使所有的upercase看起来更好。
没有“正确的”答案。 只是一套更好地发挥你的其他工具的做法和惯例。
所以我更喜欢DvdPlayer
。 这是更有帮助,因为在Eclipse中你可以做Ctrl + Shift + T,并select每个单词的第一个字母的类。
我已经看到他们两个都在野外使用,而Sun似乎是为了DVDPlayer
风格。 不过,我更喜欢DvdPlayer
,因为这样可以很清楚地看到,在DvdPlayer
,即使有多个连续的缩略词,字边界也是如此。
我喜欢用以下方式定义类的各个实例:
Catalogue catalogue; Person person;
因此,如果我使用DVDPlayer
,我会怎么称呼它的一个实例呢? dVDPlayer
? 因此,我会selectDvdPlayer
类名称,所以你可以命名像dvdPlayer
的实例。
JavaSE类,apache commons和spring的一些例子:
-
HttpURLConnection
-
HTTPAddress
-
UrlPathHelper
-
AopProxy
-
ISBNValidator
所以 – 这并不重要。
有效的Java似乎更喜欢DvdPlayer。
从太阳java文档 :
类名应该是名词,大写的每个内部单词的首字母大写。 尽量保持你的类名简单和描述性。 使用整个单词 – 避免首字母缩略词和缩写(除非缩写比长表单更广泛,比如URL或HTML)。
正如其他人所指出的那样,这是一个风格不同的项目。 像Guava和GWT这样的Google项目更喜欢DvdPlayer
风格。 请点击此处查看名为首字母缩写词的部分: http : //code.google.com/webtoolkit/makinggwtbetter.html#codestyle
(该页面是关于GWT的,但在Google的项目中使用相同的代码样式)。
DVDPlayer
是标准的,但DvdPlayer
并不less见。
你经常看不到getId
。 这可能是由于思考ID是“身份”的缩短。 它实际上是身份证件的缩写。
HttpURLConnection
经常作为混合约定的一个例子。 然而,在URL中用作协议名称的“http”应该是小写的(尽pipe通常接受大写)。
这里没有“正确的”,只有偏好。
Sun对包含“URL”和“HTML”的类进行命名的方式是一致的,但我在javadoc中看到了使用全部大写和驼峰大小写的HTTP。
就个人而言,我更喜欢DvdPlayer。