
接口隔离原则定义如下:
接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。
每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。这里的“接口”往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的“接口”定义,有严格的定义和结构,比如Java语言中的interface。
总结:
(1).接口尽量要小
这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。
根据接口隔离原则拆分接口时,首先必须满足单一职责原则。
(2).接口要高内聚
什么是高内聚,高内聚就是要提高接口、类、模块的处理能力,减少对外交互。
具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。
(3).定制服务
什么是定制服务?定制服务就是单独一个个体提供优良的服务。
(4).接口设计是有限度的
接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个度只能根据经验和常识判断,没有一个固化或可测量的标准。
实践总结
一个接口只服务于一个子模块或业务逻辑
通过业务逻辑压缩接口中public的方法,接口时常去回顾,尽量让接口达到"满身筋骨肉",而不是一大堆"肥嘟嘟"的方法。
已经被污染的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理。
了解环境,拒绝盲从。
网友评论