Java命名约定与缩略语

什么是以下Java类的正确名称: DVDPlayerDvdPlayer

由于看起来答案是在Java中没有单一的标准,所以我想指出.Net框架devise指南的确指明了这一点。

现在,在关注主题之前,请记住,Java和.Net Framework的类命名准则非常相似,这使.Net准则成为有说服力的参考。

一般规则

这两个指导方针build议只使用首字母缩略词时,首字母缩写是众所周知和了解。 DVD或XML就是一个很好的例子,因为当你立即识别它们的时候,识别扩展版本需要更长的时间。

缩略语

“.Net框架指南”build议不要使用缩写(与缩略语相反),但可以在标识符中使用两个常用缩写“ID”和“OK”。 当使用缩写时,总是使用混合大小写Id除了camelCase标识符的第一个字(与PascalCase标识符相反)。

在Java中,这个约定只有一些时间。 看看如何混合拼写getIDgetId在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。