首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

怎么理解“每个组件只应提供单一的API调用入口”

2012-09-21 
如何理解“每个组件只应提供单一的API调用入口”每个组件只应提供单一的API调用入口,这句话的意思是什么?我

如何理解“每个组件只应提供单一的API调用入口”
每个组件只应提供单一的API调用入口,这句话的意思是什么?

我的看法:

   1. 正解:组件中的每个操作都应该只有一个入口;应用层不能既调用BeanService.getBean(),又调用BeanDAO.getBean(). 原因可见http://chenjianjx.iteye.com/admin/blogs/1487076

   2. 误解:每个模块只能使用一个类作为API. 像bean-biz.jar这种组件,可以同时提供BeanService作为CRUD、业务逻辑入口,以及BeanSearchService作为搜索查询入口;否则,如果把所有操作都丢给单一的BeanService,那 BeanService 这个类本身的内聚性就很差。


其实,关于“组件中的每个操作都应该只有一个入口”也可以有例外情况。 比如一个缓存客户端 cache-client.jar中,可以同时提供CommonCacheTemplate作为通用的、灵活性高的API,以及SimpleCacheOperations作为最常用的、极其易用(比如可以少传几个参数)的的API。不过,后者必须建立在前者基础上,只作为前者的易用版本来使用,不准附加任何与前者冲突的业务逻辑

热点排行