首页 > 程序开发 > 综合编程 > 安全编程 > 正文
接口隔离原则详解--七大面向对象设计原则(4)
2016-07-16       个评论    来源:fanyun的博客  
收藏    我要投稿

接口隔离原则的来源:

类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。因为使用多个专门的接口比使用单一的总接口要好,所以便提出了接口隔离原则。

接口隔离原则的目的:

将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。

接口隔离原则的两种定义:

(1)当把“接口”理解成一个类型所提供的所有方法特征的集合的时候,这就是一种逻辑上的概念,接口的划分将直接带来类型的划分。可以把接口理解成角色,一个接口只能代表一个角色,每个角色都有它特定的一个接口,此时,这个原则可以叫做“角色隔离原则”。

(2)如果把“接口”理解成狭义的特定语言的接口,那么ISP表达的意思是指接口仅仅提供客户端需要的行为,客户端不需要的行为则隐藏起来,应当为客户端提供尽可能小的单独的接口,而不要提供大的总接口。在面向对象编程语言中,实现一个接口就需要实现该接口中定义的所有方法,因此大的总接口使用起来不一定很方便,为了使接口的职责单一,需要将大接口中的方法根据其职责不同分别放在不同的小接口中,以确保每个接口使用起来都较为方便,并都承担某一单一角色。接口应该尽量细化,同时接口中的方法应该尽量少,每个接口中只包含一个客户端(如子模块或业务逻辑类)所需的方法即可,这种机制也称为“定制服务”,即为不同的客户端提供宽窄不同的接口。

接口隔离原则的示例:

未按照接口隔离原则设计的如图1所示,类A依赖接口I中的方法1、方法2、方法3,类B是对类A依赖的实现。类C依赖接口I中的方法1、方法4、方法5,类D是对类C依赖的实现。对于类B和类D来说,虽然他们都存在着用不到的方法。但由于实现了接口I,所以也必须要实现这些用不到的方法。

\

 

按照接口隔离原则对原先设计进行拆分,将原有的接口I拆分为三个接口,拆分后的设计如图2所示:

\

接口隔离原则的使用总结:

(1).在实际系统设计中,使接口尽可能小,但是也不能太小,太小就会使得接口太多,难以维护。接口也不能太大,太大的接口将违背接口隔离原则,灵活性较差,使用起来很不方便。根据自己系统大小,合理控制接口。

(2).根据依赖接口的类选择方法,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。

(3).提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。

点击复制链接 与好友分享!回本站首页
上一篇:SSM(三)Shiro使用详解
下一篇:ATSHA204A加密芯片攻略——使用篇
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站