java - 我应该如何命名这个方法?

标签 java naming-conventions

<分区>

我正在为处理 Job 实体的服务设计 API。我需要检索给定状态的工作。所以,我最终将我的方法命名为:

List<Job> getJobsByStatus(JobStatus status);

一段时间后,我意识到我还需要能够检索不属于给定状态的工作。比如说,我想检索所有已关闭的工作。

我一直无法为这个方法想出一个合适且直观的名称。

我想到了以下内容,但不太正确。

List<Job> getJobsAllButStatus(JobStatus status);
List<Job> getJobsNotStatus(JobStatus status);

我不能使用特定的状态,例如关闭和命名我的方法 getAllButClosedJobs,因为我的方法将是一个能够处理任何状态的通用方法。

PS:我希望这个问题属于 SO,虽然它在技术上不是编程。否则,请随时将其迁移到合适的站点。

最佳答案

List<Job> getJobsExcludingStatus(JobStatus status);

甚至

List<Job> getJobsExcluding(JobStatus status);

.......

此外,这也是您不应该使用 boolean 参数的原因。假设您有这样的界面:

List<Job> getJobs(JobStatus status, boolean exclude);

然后想象这样的代码:

List<Job> jobLIst = getJobs(status, false);

怎么会有人知道它是如何工作的?他们必须深入研究方法才能发现 false 是用于包含或排除或其他任何内容的开关。方法实现中的 if 语句在您的 API 中隐藏两种方法 - 一种处理真实情况,另一种处理错误情况。打字不是软件开发的瓶颈 - 而是思维。

关于java - 我应该如何命名这个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095483/

相关文章:

java - 无法从 Vertx 3 中的 Postgres 存储过程返回值

java - 使用alternatedocroot时无法通过glassfish访问外部资源

ios - ViewController_iPad.xib 与 ViewController~ipad.xib

java - 将 XmlSerializer 代码从 java 转换为 C#

java - 使用 jakarta.* 包在 Tomcat 10.x 上部署 Spring 5.x

Java:多维数组与一维

asp.net-mvc - Controller 名是从类名派生的吗?

mysql - MySQL FK 的正确命名约定是什么?

database - 数据库模式中的多对多关系表是否有正式名称?

c# - 属性 getter/setter 的方法命名是否在 IL 中标准化?