码迷,mamicode.com
首页 > 编程语言 > 详细

架构中的设计原则之接口分离原则(ISP) - 《java开发技术-在架构中体验设计模式和算法之美》

时间:2015-04-23 20:05:19      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:


接口分离原则    

接口分离原则的核心思想是:不应该强迫客户程序依赖它们不需要使用的方法。英文缩写ISP,即Interface Segregation Principle。其实接口分离原则的意思就是:一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该 把所有的操作都封装到一个接口中。

这里的“接口”指的不仅仅是通过interface关键字定义的接口,接口分为如下两种。

  1. 对象接口。java中声明的一个类,通过new关键字产生的一个实例,它是对一个类型的事物的描述,这也是一种接口。

  2. 类接口。这中接口就是通过关键字interface 定义的接口。

    也就是说,接口分离原则要求的是在一个模块中应该只依赖它需要的接口,以保证接口的小纯洁。而且需要保证接口应该尽量小,即设计接口的时候应该让接口尽量细化,不要定义太臃肿的接口(比如接口中有很多不相干的逻辑方法声明)。

    接口分离原则与单一职责有些相似,不过不同在于:单一职责原则要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。而接口分离原则要求的是接口的方法尽量少,针对一个模块尽量有用。

    在使用接口分离原则的时候,需要有一些规范。

  • 接口尽量小:接口尽量小,这主要是为了保证一个接口只服务于一个子模块或者业务逻辑。

  • 接口高内聚:接口高内聚是对内高度依赖,对外尽可能隔离。即一个接口内部声明的方法相互之间都与某一个子模块相关,且是这个子模块必须的。

  • 接口设计是有限度的:如果完全遵循接口分离原则的话,会出现一个问题,即接口的设计力度会越来越小,这样就造成了接口数量剧增,系统复杂度一下子增加了,而不是真实项目所需要的,所以在使用这个原则的时候,还要在特定的项目中,根据经验或尝试去判断,但没有一个固定的标准。

架构中的设计原则之接口分离原则(ISP) - 《java开发技术-在架构中体验设计模式和算法之美》

标签:

原文地址:http://my.oschina.net/doctor2014/blog/405651

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!