java - 接口(interface)设计 - 是否有访问方法的命名约定?

标签 java naming

<分区>

我有一个关于 java 接口(interface)设计的问题,涉及命名关闭访问方法。 通常我经常在我的接口(interface)中使用“get”前缀访问方法,当我没有 setter 方法时也是如此。

例如:

public MyObject getTask(int id, String version);

我考虑通过将方法重命名为

来影响我的接口(interface)的大量重构
public MyObject findTask(int id, String version);

我的问题是:是否有任何合理的规则来决定接口(interface)方法应该设计为查找器方法还是 getter 方法?或者这是相当随意的事情?

最佳答案

getXYZ 方法通常传达的意思是它们返回的信息很容易被实例访问。通常这些方法只是返回数据成员的[可能是只读的副本],或者对它们进行非常简单的操作。这个概念驱动的行为是您不需要在使用该方法时考虑太多 - 调用它很便宜,不值得再考虑。

findXYZ 方法传达了一种含义,即尽管实例能够检索此信息,但它并不容易获得 - 它需要去寻找它 - 例如,通过查询数据库或服务目录。这个概念导致在调用此类方法之前三思而后行,并努力保存或缓存其结果。

关于java - 接口(interface)设计 - 是否有访问方法的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490594/

相关文章:

user-interface - UI中 "workflow oriented"的反义词是什么

java - HttpMethodBase 与 HttpRequestBase

java - 解决 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException : Unrecognized field

java - Gson.toJson(Object) 返回对象哈希码

database - 在索引名中包含表名有什么好处?

spring - 最短的 Spring Framework 类名(包括包)是什么?

java - Java 使用数组和递归时出现 StackOverflowError

java - 将 EditText 添加到 HashMap android

vb.net - 如何在 VB.NET 中命名成员变量?

javascript - 单词 "target"和 "dest"之间有什么不同