《设计模式之蝉》 第四章 接口隔离原则

《设计模式之蝉》 第四章 接口隔离原则_第1张图片
图片发自App

 接口隔离原则定义如下:

接口隔离原则(Interface  Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。


根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。

每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。这里的“接口”往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的“接口”定义,有严格的定义和结构,比如Java语言中的interface。


总结:

(1).接口尽量要小

这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。

根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

(2).接口要高内聚

什么是高内聚,高内聚就是要提高接口、类、模块的处理能力,减少对外交互。

具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。

(3).定制服务

什么是定制服务?定制服务就是单独一个个体提供优良的服务。

(4).接口设计是有限度的

接口的设计粒度越小,系统越灵活,这是不争的事实。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,这不是一个项目或产品所期望看到的,所以接口设计一定要注意适度,这个度只能根据经验和常识判断,没有一个固化或可测量的标准。

实践总结

一个接口只服务于一个子模块或业务逻辑

通过业务逻辑压缩接口中public的方法,接口时常去回顾,尽量让接口达到"满身筋骨肉",而不是一大堆"肥嘟嘟"的方法。

已经被污染的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理。

了解环境,拒绝盲从。

你可能感兴趣的:(《设计模式之蝉》 第四章 接口隔离原则)