我该如何命名这种方法?

ada*_*shr 7 java naming-conventions

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

List<Job> getJobsByStatus(JobStatus status);
Run Code Online (Sandbox Code Playgroud)

过了一会儿,我意识到我还需要能够检索不属于给定状态的作业.说,我想要检索除了已关闭的工作以外的所有工作.

我一直无法想到这种方法的合适且直观的名称.

我想到了下面但是没有找到它们.

List<Job> getJobsAllButStatus(JobStatus status);
List<Job> getJobsNotStatus(JobStatus status);
Run Code Online (Sandbox Code Playgroud)

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

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

bla*_*ank 11

List<Job> getJobsExcludingStatus(JobStatus status);
Run Code Online (Sandbox Code Playgroud)

甚至

List<Job> getJobsExcluding(JobStatus status);
Run Code Online (Sandbox Code Playgroud)

.......

为了更好地衡量,这就是为什么你不应该使用布尔参数.假设您有这样的界面:

List<Job> getJobs(JobStatus status, boolean exclude);
Run Code Online (Sandbox Code Playgroud)

然后设想代码如下:

List<Job> jobLIst = getJobs(status, false);
Run Code Online (Sandbox Code Playgroud)

怎么有人想知道它是如何工作的?他们必须深入研究方法,以发现错误是包含或排除或等等的转换.方法实现中的if语句隐藏了API中的两个方法 - 一个执行真实案例,另一个执行false案例.打字不是软件开发的瓶颈 - 这是思考.


Ara*_*ram 6

List<Job> Jobs.allWith(JobStatus... status);
List<Job> Jobs.allBut(JobStatus... status);
Run Code Online (Sandbox Code Playgroud)

流畅的api和varargs的组合