ISP(Interface Segregation Principle):接口调用者不应该被强迫依赖它不需要的接口

接口的三种理解

  • 一组 API 接口集合

如果部分接口只被部分调用者使用,我们就需要将这部分接口隔离出来,单独给这部分调用者使用,而不强迫其他调用者也依赖这部分不会被用到的接口。

  • 单个 API 接口或函数

部分调用者只需要函数中的部分功能,那我们就需要把函数拆分成粒度更细的多个函数,让调用者只依赖它需要的那个细粒度函数。

  • OOP 中的接口概念

接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。

vs 单一职责原则

接口隔离原则跟单一职责原则有点类似,不过稍微还是有点区别。
单一职责原则针对的是模块、类、接口的设计。
而接口隔离原则相对于单一职责原则,一方面它更侧重于接口的设计,另一方面它的思考的角度不同。它提供了一种判断接口是否职责单一的标准:通过调用者如何使用接口来间接地判定。如果调用者只使用部分接口或接口的部分功能,那接口的设计就不够职责单一。