接口隔离原则 Interface Segregation Principle 

 

定义:

  • 客户端不应该依赖它不需要的接口
  • 类间的依赖关系应该建立在最小的接口上

我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。

提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。

接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性。

含义:

  • 接口要尽量小

这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。

根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

  • 接口要高内聚

高内聚就是要提高接口、类、模块的处理能力,减少对外的交互。

具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。

  • 定制服务

定制服务就是单独为一个个体提供优良的服务。

  • 接口设计是有限度的

接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个度只能根据经验和常识判断,没有一个固化或可测量的标准。

最新文章

  1. hideSoftInputFromWindow
  2. wex5 实战 图片触摸放大移动插件easyzoom的使用与集成
  3. [转]simple sample to create and use widget for nopcommerce
  4. Android消息机制之ThreadLocal的工作原理
  5. 开启telnet的几种方法
  6. MyBatis知多少(1)
  7. udp打洞( NAT traversal )的方法介绍
  8. PHP 生成随机浮点数
  9. linux .o,.a,.so文件解析
  10. iOS OC开发代码规范
  11. shell脚本中的标准输出重定向使用涵义
  12. iOS: TableView如何刷新指定的cell 或section
  13. nginx下配置二级域名指向子目录
  14. 解决BackBox中Fcitx输入法中文输入状态下不显示候选词框的问题
  15. input 标签,不可更改
  16. [Java并发编程(五)] Java volatile 的实现原理
  17. ubuntu14.04 VIM for python 一键配置
  18. js异步刷新局部页面
  19. 【webstorm】免费使用
  20. 遍历json数组实现树

热门文章

  1. redis的使用和安装,redis基础和高级部分
  2. NYOJ 1009 So Easy[Ⅰ]【简单题】
  3. Socket长连接和短连接的区别
  4. 【BZOJ5071】[Lydsy十月月赛]小A的数字 发现性质
  5. [SharePoint 2010] SharePoint 2010上多人同時編輯Office 2010文件
  6. ios UITableView高度自适应(转)
  7. SQL使用union合并查询结果(转载)
  8. [Gradle] 如何强制 Gradle 重新下载项目的依赖库
  9. 160316、实时处理oracle数据库中表的数据变化
  10. Linux云服务器下Tomcat部署超详细