首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春季工厂模式

春季工厂模式
EN

Code Review用户
提问于 2014-01-08 00:13:48
回答 1查看 883关注 0票数 3

我有下面的工厂类,不知道这段代码能否以更好的方式实现。我很少看到关于spring工厂bean的讨论,但是找不到好的例子。

代码语言:javascript
复制
@service
public CustomerSearchFactory{
  @Autowired
  private CustomerSearchByID searchById;
  @Autowired
  private CustomerSearchByName searcyByName;
  @Autowired
  private CustomerSearchBySSN searchBySSN;

  public CustomerSearch getInstance(Request param){
    if (StringUtils.isNotBlank(param.getID()){
        return searchById;
    }else if (StringUtils.isNotBlank(param.getName()){
        return searcyByName;
    }else if (StringUtils.isNotBlank(param.getSSN()){
        return searchBySSN;
    }
  }  
}

@service
public CustomerSearchByID implements CustomerSearch{
  @Autowired
  private Service1 service1;  
  public Response search(Request request){
   --
   -- 
   ReturnResponse rs = service1.performSearch(inputRequest);
   --
   return response;
 }  
}

@service
public CustomerSearchBySSN implements CustomerSearch{
  @Autowired
  private Service2 service2;  
  public Response search(Request request){
   --
   -- 
   ReturnResponse rs = service2.performSSNSearch(inputRequest);
   --enter code here`
   return response;
 }  
}

呼叫者代码:

代码语言:javascript
复制
CustomerSearch customerSearch= customerSearchFactory.getInstance(param)
response = customerSearch.search(request);

我正在使用Spring3.1框架,并想知道这段代码是否可以优化。

EN

回答 1

Code Review用户

发布于 2014-01-08 14:34:36

我建议每个搜索标准不要使用不同的CustomerSearch

随着功能的发展,您可能需要一个CustomerSearch,它使用Customer来自的国家。

但是,如果您想结合部分名称在Country上搜索呢?

不久,您将将不同的搜索条件组合在一起,这将需要一个智能CustomerSearch bean。

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/38802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档