首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

不要向下层暴露本层以及所依赖的接口细节

2012-11-08 
不要向上层暴露本层以及所依赖的接口细节h1.背景在攻略全文搜索中,搜索的接口很丰富,并且将来可能会增加更

不要向上层暴露本层以及所依赖的接口细节
h1.背景

在攻略全文搜索中,搜索的接口很丰富,并且将来可能会增加更多的需求。搜索业务类提供的接口既要能满足将来的扩展,
又不能暴露底层的细节,还要避免功能组合带来接口的膨胀。

h1.设计方法
搜索接口的依赖关系,如下图:
前端控制器 ----> 搜索业务方法 --> QP搜索API

QP主要需要一下参数控制搜索条件:
普通的: key=key
指定字段搜索: search_in=field
按照月份过滤: travelmonths=month
飘红: hl=true,hl.fl=highlightFields,
      hl.simple.pre=飘红开始标签
      hl.simple.post=飘红结束标签

h2.不好的设计1
如果Service层像控制器层提供一个functionParams,让Controller根据
不同的情景设置不同的参数进行搜索:

SearchFunction sf = new SearchFunction();sf.withOnlyUserName().withMonthFilter(1).withDefaultHighlight();SearchBookBean searchBean = service.searchBooks("keyword", sf);

热点排行