OOP – 接口隔离原则(ISP)

本文是对王争大佬《设计模式之美》的学习总结

接口隔离原则 Interface Segregation Principle (ISP)

  接口隔离原则的英文翻译是“Interface Segregation Principle”,缩写为ISPRobert MartinSOLID原则中是这样定义它的:“Clients should not be forced to depend upon interface that they do not use.”。直译成中文就是:客户端不应该被强迫依赖它不需要的接口。其中的“客户端”,可以理解为接口的调用者或者使用者。

  我们可以把“接口”理解为下面三种东西:

  • 一组API接口集合
  • 单个API接口或函数
  • OOP中的接口概念

把“接口”理解为一组API接口集合

  我们把接口隔离原则中的接口,理解为一组接口集合,它可以是某个微服务的接口,也可以是某个类库的接口等等。在设计微服务或者类库接口的时候,如果部分接口只被部分调用者使用,那我们就需要将这部分接口隔离出来,单独给对应的调用者使用,而不是强迫其他调用者也依赖这部分不会被使用到的接口。

把“接口”理解为单个API接口或函数

  换一种理解方式,把接口理解为单个接口或函数,那接口隔离原则就可以理解为:单个接口或函数的设计要功能单一,不要将多个不同的功能逻辑在一个函数中实现。

把“接口”理解为OOP中的接口概念

  也可以理解为面向对象编程语言中的接口语法,那接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。

接口隔离原则与单一职责原则的区别

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享