确定在 Java 中将哪个谓词用于方法名称

2022-09-01 12:54:42

我知道命名约定很重要,原因有很多,大多数原因与使代码更具可读性以及更容易集成到更大的项目中有关,等等。在 Java 中,大多数约定都要求方法名称以动词开头。lowerCamelCase

我的问题是:我如何选择动词来开始方法名称?

为了使这个问题不那么模糊,我经常遇到这样的情况,即我的首选方法名称是描述输出的名词。在这些情况下,我通常会在名词字体中附加通用动词(如、、等)以符合动词规则之间徘徊。是否有关于何时使用哪个的一般准则?getgeneratecalculate

下面是一个示例。我有一个 take 和 and 返回的方法,它是 的长度移动平均值,即 与 一些捏造使长度与 .我的傾向是稱呼這個方法,因為這是它返回的,但這是出來的,因為它不是以動詞開始的。我应该调用此方法还是 or 或者它并不重要?double[] arrayint kdouble[] newArraykarraynewArray[i] = (array[i-k+1]+...+array[i])/knewArrayarraymovingAveragegetMovingAveragegenerateMovingAveragecalculateMovingAverage


答案 1

我通常会问自己:

此方法的作用是什么?

答案决定了该方法应调用什么。当然,它完全独立于程序员。

注意:如果你不能简明扼要地描述该方法在做什么,它可能做得太多了,应该分开。

选择方法的动词:

  • 执行计算:计算
  • 检索数据:获取检索
  • 变异数据:设置更改
  • 删除数据:删除移除
  • 转换:转换
  • 启动操作:启动启动
  • 停止操作:停止取消

现在,并非所有方法都以动词开头;但他们真的不需要。如果您阅读:

... myString.length();

... myArray.size();

你确切地知道发生了什么 - 不需要动词。对于Java层次结构中更高的许多类方法都是如此。馆藏、数学等只要名称准确地传达了该方法的作用,就可以了。


答案 2

不要忘记将此动词“is,has或can”用于布尔方法,例如:isOn(),isFull()等。