一尘不染

Java中实用程序类的命名约定

java

用Java编写实用程序类时,应遵循哪些良好准则?

包装应该是“ util”还是“
utils”?是ClassUtil还是ClassUtils?什么时候上课是“帮手”或“实用程序”?实用程序还是实用程序?还是混合使用它们?

标准Java库同时使用Utils和Utilities:

  • javax.swing.Utilities
  • javax.print.attribute.AttributeSetUtilities
  • javax.swing.plaf.basic.BasicGraphicsUtils

Apache使用了多种Util和Utils,尽管大多数都是Utils:

  • org.apache.commons.modeler.util.DomUtil
  • org.apache.commons.modeler.util.IntrospectionUtils
  • org.apache.commons.io.FileSystemUtils
  • org.apache.lucene.wordnet.AnalyzerUtil
  • org.apache.lucene.util.ArrayUtil
  • org.apache.lucene.xmlparser.DOMUtils

Spring使用了很多Helper和Utils类:

  • org.springframework.web.util.UrlPathHelper
  • org.springframework.core.ReflectiveVisitorHelper
  • org.springframework.core.NestedExceptionUtils
  • org.springframework.util.NumberUtils

那么,您如何命名实用程序类?


阅读 237

收藏
2020-12-03

共1个答案

一尘不染

像许多此类约定一样,重要的不是您使用的约定是什么,而是您始终使用它。例如,如果您有三个实用程序类,并且将它们称为CustomerUtil,ProductUtils和StoreUtility,则其他尝试使用您的类的人将不断感到困惑,并错误地键入CustomerUtils,必须对其进行查找,并多次咒骂您,等(我曾经听过一次关于一致性的演讲,演讲者放了一张幻灯片,用三个要点分别标明了演讲的要点,分别标记为“
1”,“ 2nd”和“ C”。)

从来没有两个名字只是在一些细微的拼写上有所不同,例如拥有CustomerUtil和CustomerUtility。如果有充分的理由进行两个类的学习,那么它们必须有所不同,并且名称至少应为我们提供一个区别。如果一个包含与名称和地址相关的实用程序功能,而另一个包含与订单相关的实用程序功能,则将它们称为CustomerNameAndAddressUtil和CustomerOrderUtil或类似的名称。当我看到名字无意义的细微差别时,我会经常发疯。就像昨天一样,我正在开发一个程序,该程序包含三个字段的运费,分别为“运费”,“运费”和“运费”。我必须研究代码以找出它们之间的区别。

2020-12-03