架构中的设计原则

架构中的设计原则之接口分离原则(ISP)

我是研究僧i 提交于 2019-11-27 04:28:04
接口分离原则 接口分离原则的核心思想是:不应该强迫客户程序依赖它们不需要使用的方法。英文缩写ISP,即Interface Segregation Principle。其实接口分离原则的意思就是:一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该 把所有的操作都封装到一个接口中。 这里的“接口”指的不仅仅是通过interface关键字定义的接口,接口分为如下两种。 对象接口。java中声明的一个类,通过new关键字产生的一个实例,它是对一个类型的事物的描述,这也是一种接口。 类接口。这中接口就是通过关键字interface 定义的接口。 也就是说,接口分离原则要求的是在一个模块中应该只依赖它需要的接口,以保证接口的小纯洁。而且需要保证接口应该尽量小,即设计接口的时候应该让接口尽量细化,不要定义太臃肿的接口(比如接口中有很多不相干的逻辑方法声明)。 接口分离原则与单一职责有些相似,不过不同在于:单一职责原则要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。而接口分离原则要求的是接口的方法尽量少,针对一个模块尽量有用。 在使用接口分离原则的时候,需要有一些规范。 接口尽量小:接口尽量小,这主要是为了保证一个接口只服务于一个子模块或者业务逻辑。 接口高内聚:接口高内聚是对内高度依赖,对外尽可能隔离。即一个接口内部声明的方法相互之间都与某一个子模块相关