带有缩略语的Java命名约定

时间:2010-02-10 12:45:20

标签: java naming-conventions

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

10 个答案:

答案 0 :(得分:207)

由于看起来答案是Java中没有单一的标准,我想要注意.NET Framework设计指南确实指明了这一点。

现在在关闭我的主题之前,请记住Java和.NET Framework的类命名准则非常相似,这使得.NET指南有用作为一个有说服力的参考。

一般规则

这两个指南建议仅在首字母缩略词广为人知且充分理解时才使用首字母缩略词。 DVD或XML就是很好的例子,因为虽然您会立即识别它们,但识别扩展版本需要更长的时间。

缩写

.NET Framework指南建议不要使用缩写(而不是缩略语),除了标识符中可以使用两个常用缩写“ID”和“OK”。使用缩写时,除了camelCase标识符的第一个单词(而不是PascalCase标识符)之外,始终使用混合大小写Id

在Java中,只有部分时间遵循此约定。 Take a look {J}中拼写getIDgetId的混合程度Java 8 version。 (在该页面的中间向下滚动)。但是在{{3}}中,getId的使用越来越多,这暗示了PascalCase约定现在更受欢迎。最好尽可能完全避免使用缩写。

简短缩略语

.NET Framework指南说,像'IO'这样的两个字母的首字母缩略词对于这两个字母应该具有相同的大小写。因此,对于PascalCase标识符(如类名),您将获得DBRate,而对于camelCase标识符(如本地变量),您可能拥有ioChannel

这似乎也是Java中的主流惯例。

长缩略语

.NET Framework指南建议缩写三个字母或更长的字母使用PascalCase和camelCase标识符的混合大小写,但camelCase标识符的第一个单词除外。因此,对于类名,您可能具有XmlDocument,而局部变量可能被命名为httpRequest

在Java中并不总是遵循此约定。四个字符的首字母缩略词似乎通常使用混合大小写,但即使是JCL也不一致三个字母的首字母缩略词。他们中的大多数似乎都是大写的,比如'URL','XML','SQL'和'DOM',但也有一些例外,比如'Jar'。

结论

对于Java:

对于4个以上的字母首字母缩略词,请使用混合大小写。标准库就是这样做的,它只是很有意义。

对于3个字母的首字母缩略词,您可以像JCL一样使用全部大写,或者您可以使用类似.NET Framework的混合大小写。无论哪种方式,都要保持一致。

对于2个字母的首字母缩略词,请全部使用大写字母。

对于2个字母的缩写,Java并没有真正的标准,但我建议使用混合大小写,除非与其他名称的一致性会使所有大写看起来更好。

答案 1 :(得分:95)

没有“正确”的答案。只是一组更好地与您的其他工具一起使用的实践和惯例。

因此我更喜欢DvdPlayer。它更有用,因为在Eclipse中你可以做 Ctrl + Shift + T 并按每个单词的第一个字母选择类。

alt text

答案 2 :(得分:50)

我已经看到它们都在野外使用,而Sun似乎也采用DVDPlayer风格。不过,我更喜欢DvdPlayer,因为即使有多个连续的首字母缩略词,也很清楚字边界的位置,如HTTPURLConnection

答案 3 :(得分:33)

我喜欢以下列方式定义类的各个实例:

Catalogue catalogue;
Person person;

因此,如果我使用DVDPlayer,我会将其称为实例? dVDPlayer?因此,我会选择DvdPlayer类名,因此您可以将实例命名为dvdPlayer

答案 4 :(得分:27)

JavaSE类的一些例子,apache commons和spring:

  • HttpURLConnection
  • HTTPAddress
  • UrlPathHelper
  • AopProxy
  • ISBNValidator

所以 - 这并不重要。

答案 5 :(得分:23)

Effective Java似乎更喜欢DvdPlayer。

答案 6 :(得分:8)

来自sun java docs

  

类名应该是名词,大小写混合,每个内部单词的首字母大写。尽量保持您的类名简单和描述性。使用整个单词 - 避免缩略语和缩写(除非缩写比长格式更广泛使用,例如URL或HTML)。

答案 7 :(得分:7)

正如其他人所指出的那样,它的风格因项目而异。 Guava和GWT等Google项目更喜欢DvdPlayer风格。

https://google.github.io/styleguide/javaguide.html#s5.3-camel-case

答案 8 :(得分:3)

DVDPlayer是标准,但DvdPlayer并不罕见。

您经常看到getId。这可能是由于认为ID是“身份”的缩短。它实际上是身份证明的缩写。

HttpURLConnection通常作为混合约定的示例给出。但是,在URL中用作协议名称的“http”应该是小写的(尽管通常接受大写)。

答案 9 :(得分:0)

此处没有“正确”,只有偏好。

Sun在命名包含“URL”和“HTML”的类的方式上是一致的,但我在javadocs中看到了使用全部大写和驼峰大小写的HTTP。

就个人而言,我更喜欢DvdPlayer。