频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
Java 设计模式(十三) 接口隔离原则(ISP)
2016-05-12 09:07:49         来源:llin-黎辰  
收藏   我要投稿

ISP基本概念

接口

实例接口(Object Interface):一个类的实例对象是对一个类型的事物的描述,这时一种接口。 类接口(Class Interface):Java中interface关键定义的接口,也是我们通常理解的狭义的接口

ISP定义

客户端(模块)不应该依赖它不需要的接口(接口的纯粹性)

一个模块应该依赖它需要的接口,需要什么接口就提供什么接口,把不需要的接口剔除掉,那就需要对接口进行细化,保证接口的纯洁性

类间的依赖关系应该建立在最小的接口

同样强调对接口的细化,那么接口作为抽象,在建立关系时才能保证纯洁性不会被无关的依赖破坏

保证接口纯洁性的规范

接口细化

在不违反单一职责原则(SRP)下,要对接口尽量细化,违背SRP会导致单个模块暴露太多方法(接口中的方法都是publi),很多单一职能的内部接口被暴露。

接口高内聚

高内聚:提高接口、类、模块的处理能力,减少对外的交互。 接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也更小,同时也有利于降低成本。

模块服务定制

为了减少模块间的耦合,可以对模块间的类似功能分别定制服务(不共用接口,而是使用专门的接口)

保证接口原子性的规范

一个接口只服务一个子模块业务逻辑 通过优化业务逻辑压缩public方法

接口的粒度太小,会导致接口额数量剧增,对开发人员不友好;接口额粒度太大,灵活性降低,无法提供定制服务,给整体项目带来无法预估的风险。

例讲ISP

定义一个场景,也就是你找工作的时候,简历的筛选,人具有特异性,如果接口的粒度过大,会导致可能无法让A的技能完整呈现,或者不得不吹牛而保证自己所有的技能都被涉及(因为粒度不够细化),也可能分的接口细度过于大,填简历和写一本书一样的成本,那哪里还会有人来应聘,去卖书不好吗~就不实现了,完全没有任何代码难度…….

往往接口的粒度合适不合适和场景是密切相关的,这就要看设计者的能力了,一些设计模式的广泛应用也和他们的接口设计的恰到好处有关系。

点击复制链接 与好友分享!回本站首页
上一篇:Spring4新特性:Groovy Bean定义DSL
下一篇:Spring对ORM的支持之集成Hibernate3
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站