常数的命名;首先输入或姓名?

时间:2013-12-28 10:18:49

标签: java variables constants

长期困扰我的事情是常数的命名。

例如,在磁盘上保存图像的路径:

PATH_IMAGES

保存图片的网址:

URL_IMAGES

但我也可以使用IMAGES_PATHIMAGES_URL。这同样适用于普通变量名称: users_screenscreen_users用于显示用户列表的屏幕。

是否应该首先考虑哪个部分的标准?

当然,如果可能的类型不应包含在变量名中。但是在很多情况下这是不可能的。

3 个答案:

答案 0 :(得分:2)

显然没有严格的规则,但典型的惯例是使用[CATEGORY]_[ITEM],因为这是一种更简洁,更易于管理的方式。

考虑一下你有几条路径和几个屏幕。你可能有:

  • PATH_ITEM
  • PATH_ANOTHER_ITEM
  • PATH_A_FINAL_ITEM
  • SCREEN_USER
  • SCREEN_ADMIN
  • SCREEN_HOME

这比管理/阅读/导航更容易:

  • ITEM_PATH
  • ANOTHER_ITEM_PATH
  • A_FINAL_ITEM_PATH
  • USER_SCREEN
  • ADMIN_SCREEN
  • HOME_SCREEN

通常,使用命名约定时,最好的做法是开始广泛和特定结束。

“正常变量名称”是略有不同的情况,因为您通常需要在流动的代码中读取的东西,而不是在组织良好的项目层次结构中的东西,例如:

String imagePath = myImage.path;

值得注意的是,虽然Oracle提供naming guidelines for constants,但它们并不具体针对您的要求,因此最终会归结为意见和可读性。老实说,只要你保持一致,就没那么重要了。

答案 1 :(得分:1)

想想在程序的更大范围内以及如何使用它最有意义的东西。

例如,如果您有多个“图像”常量,那么将它们全部以IMAGES开头是有意义的,因为您需要做的就是开始键入IMA然后代码完成将让你会看到与图像相关的所有常量列表。

另一方面,如果您通常从考虑路径开始,并且在大多数时间寻找所有可能的路径,那么将所有PATH_内容组合在一起可能是有意义的。

关键是要在代码中保持一致 - 并且理想地与您正在使用的任何库一致。

答案 2 :(得分:1)

Oracle在其命名中更喜欢DETAIL_TYPE,例如

  • CharSequence 作为类名(而不是SequenceChar)
  • java.lang.String。 CASE_INSENSITIVE_ORDER 而不是java.lang.String.ORDER_CASE_INSENSITIVE

因此,在您的示例中,它将是 usersScreen

但是,作为一般规则:使用支持可读性的命名。