接口分离原则
接口分离原则的核心思想是:不该该强迫客户程序依赖它们不须要使用的方法。英文缩写ISP,即Interface Segregation Principle。其实接口分离原则的意思就是:一个接口不须要提供太多的行为,一个接口应该只提供一种对外的功能,不该该 把全部的操做都封装到一个接口中。
java这里的“接口”指的不单单是经过interface关键字定义的接口,接口分为以下两种。spa
对象接口。java中声明的一个类,经过new关键字产生的一个实例,它是对一个类型的事物的描述,这也是一种接口。设计
类接口。这中接口就是经过关键字interface 定义的接口。对象
也就是说,接口分离原则要求的是在一个模块中应该只依赖它须要的接口,以保证接口的小纯洁。并且须要保证接口应该尽可能小,即设计接口的时候应该让接口尽可能细化,不要定义太臃肿的接口(好比接口中有不少不相干的逻辑方法声明)。接口
接口分离原则与单一职责有些类似,不过不一样在于:单一职责原则要求的是类和接口职责单一,注重的是职责,是业务逻辑上的划分。而接口分离原则要求的是接口的方法尽可能少,针对一个模块尽可能有用。ip
在使用接口分离原则的时候,须要有一些规范。ci
接口尽可能小:接口尽可能小,这主要是为了保证一个接口只服务于一个子模块或者业务逻辑。io
接口高内聚:接口高内聚是对内高度依赖,对外尽量隔离。即一个接口内部声明的方法相互之间都与某一个子模块相关,且是这个子模块必须的。接口设计
接口设计是有限度的:若是彻底遵循接口分离原则的话,会出现一个问题,即接口的设计力度会愈来愈小,这样就形成了接口数量剧增,系统复杂度一会儿增长了,而不是真实项目所须要的,因此在使用这个原则的时候,还要在特定的项目中,根据经验或尝试去判断,但没有一个固定的标准。程序