驼峰式缩写

36

我经常看到像这样的Java类名:

XmlReader

取代

XMLReader

我个人的感觉是完全大写缩写词,但显然很多人有不同的看法。或者只是因为很多代码生成器在处理缩写词时存在问题...

因此,我想听听公众意见。 你如何将包含缩写词的类名大写?


可能是驼峰命名法:有多严格?的重复问题。 - Daniel Fischer
6个回答

52

我们使用像Java和.NET一样的驼峰命名规范。不是为了代码生成器,而是为了可读性。考虑将两个缩写词组合成一个名称的情况,例如将XML转换为HTML的类。

XMLHTMLConverter

或者

XmlHtmlConverter

你更喜欢哪一个?


12
这也是《Effective Java》推荐的做法。 - Jack Leow
8
好的,提到布洛赫就确定了。 - Stroboskop
2
为什么不使用XML2HTML转换器?!?!?!?! - Roberto Lo Giacco
1
@RobertoLoGiacco,2不是一个单词。而且那种技术会限制该类只能将XML转换为HTML。为什么不只有一个XmlHtmlConverter类可以双向转换呢?我会使用HtmlXmlConverter(按字母顺序)。 - rickmzp
1
我更喜欢XMLToHTMLConverter。全程驼峰式命名,易读性强,更清晰地表示其功能。通常情况下,仅使用名词作为名称即使在英语水平上也不是很好。 - eonil
显示剩余5条评论

16

有两个原因:

  1. 在标识符中将它们放置在彼此之后更容易区分一个首字母缩略词的结尾和另一个的开头,例如在 XmlHtmlConverter 中。现在 XML 和 HTML 不是很好的例子,因为每个人都知道 XML 是什么,HTML 是什么。但有时你会看到不太明显的缩略语,这时就变得很重要。
  2. Eclipse 能够智能地处理单词及其首字母缩略词。对于 XmlHtmlConverter,您可以在“打开类型”对话框中键入 XHC 并找到它。而对于 XMLHTMLConverter,首字母缩略词将是 XMLHTMLC,当然会有点更长。

1
+1 主要是因为 Eclipse 的提示(使用缩写)很实用。我用它来自动补全:XHC <CTRL-SPACE, ENTER>。 - Igor Popov

3
我发现XMLReader更难读。原因是你很难确定单词之间的分隔位置。我认为小写缩写应该被接受。你可能可以在类定义中使用大写字母,但实例变量呢?
XmlReader xmlReader;

在这里,你无论如何都要使用小写字母。

1
它仍然是 XMLReader xmlReader = new XMLReader(); XML算作第一个单词,所以你要将整个单词的首字母小写。 - NobleUplift

3

对于缩写,我使用以下规则:

  • If the acronym is of length 2, put the acronym in upper case.

      For Ex : UIRule
    
  • If the acronym is of more length, I use the pascal casing for the acronym

      For Ex : SmsValidation, XmlReader
    

2

0

我认为,一般来说,类名应该按照你期望的方式书写。例如,当大声说出类名时,我会说“X-M-L reader”,因此我会将类命名为“XMLReader”。然而,对于假设的“REST服务”类,我会将其命名为“RestService”,因为一般来说,“REST”不是发音为“R-E-S-T”,而是“rest”。对于像“SQL”这样的东西,我可以两种方式都使用,因为有些人说“S-Q-L”,而其他人则说“sequel”。但最终还是取决于个人喜好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接