命名约定用于返回具有类似参数的不同类型的方法

Buf*_*alo 3 java naming-conventions

我有一个SearchService使用算法查询数据库和恢复结果.根据调用者对服务的要求,可以返回几种不同的格式.这些格式是:

  • 与数据库中的表直接匹配的实体列表
  • 匹配记录的主键(Longs)列表
  • "搜索结果"列表,由一堆字段组成,这些字段通常与用户希望从搜索结果中看到的内容相关(例如人名,地址电话号码等)

目前我的SearchService看起来像:

public interface SearchService {
    public List<People> searchPeopleReturnEntity(SearchRequest request);
    public List<Long> searchPeopleReturnId(SearchRequest request);
    public List<SearchResult> searchPeopleReturnSearchResult(SearchRequest request);
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找有关此问题的最佳做法的建议.目前,命名惯例似乎相当笨重,我相信有一个比我现在更好的解决方案.

Col*_*inD 8

我想打电话给他们一些简单的像getPeople,getIds,getSearchResults.

如果你需要为人以外的实体使用这3种相同的方法,我会考虑制作一些定义它们的通用中间类型,允许你写这样的东西:

List<People> people = service.getPeople(request).asEntities();
List<Long> fooIds = service.getFoos(request).asIds();

// or something like this
List<People> people = service.searchPeople().getEntities(request);
Run Code Online (Sandbox Code Playgroud)

  • +1.我打算建议`findPeople`,`findIds`和`findSearchResults` (3认同)