Java - 接口方法命名规范

3
我已经阅读了许多关于接口命名约定的问题,但没有关于它们的方法。
以这个接口为例。
public interface TableProvider<T> {
   ServiceProxy<T> getServiceProxy();
   JsonParser<T> getJsonParser();
   String getDefinition();
}

考虑到我不允许使用setter方法,是否值得(并且正确)在这些方法前加上get前缀?
我应该考虑遵守JavaBean约定吗?


在Java中,约定俗成的规定是getter方法以get开头。是否应该遵循这个约定是一个主观问题。你有没有不遵循它的理由? - khelwood
@khelwood 不,我没有特定的原因。当我阅读它们时,我觉得“get”部分是多余的。 - LppEdd
这可能有些冗余,但你可能需要习惯一下。Java是一种冗长的语言,你会看到很多被称为getThing()的getter方法,因为除非有理由不这样做,人们通常会尽量编写遵循已建立约定的代码。 - khelwood
@khelwood 我已经写了多年的Java,一直心存疑问。有时候我觉得坚持某种规范并不是正确的做法,但这确实是确保每个人都“感到舒适”的更好方式,我可以接受这一点。 - LppEdd
1个回答

1

没有为接口中专门声明的方法命名制定惯例。

接口方法应遵循与命名方法相同的约定,建议使用动词/操作驼峰式方法名称。

尽管在getDefinition()中使用get可能显得多余,但考虑到“动词”约定,它仍然比definition()更好的方法名称。

并不是所有返回值方法都必须以get前缀开头(JDK中有许多没有getXYZ方法的接口示例)。如果意义合适,则通常会看到像createJsonParserfetchDefinition等方法。

但在我看来,TableProvider<T>ServiceProxy<T>似乎没有非常直观、常见的名称适用于getServiceProxy方法。这就是为什么这些指南只是惯例,您或您的团队可以决定在某些情况下不遵循它们。


1
虽然我知道这个问题主要是基于个人观点的,但还是很值得讨论一下。谢谢。 - LppEdd

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