<分区>
我正在为处理 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 中隐藏两种方法 - 一种处理真实情况,另一种处理错误情况。打字不是软件开发的瓶颈 - 而是思维。