设计模式:接口隔离原则

一、法则内容:

  1. 不应该强行要求客户端依赖于它们不用的接口:
    即,客户端需要什么功能,就提供什么接口,对于客户端不需要的接口不应该强行要求其依赖。

  2. 类之间的依赖应该建立在最小的接口上面:
    即,单一职责。

二、如何理解“接口”:

  1. 如果把“接口”理解为一组接口集合:
    可以是类库的接口等。如果部分接口只被部分调用者使用,我们就需要将这部分接口隔离出来,单独给这部分调用者使用,而不强迫其他调用者也依赖这部分不会被用到的接口。

  2. 如果把“接口”理解为单个API接口或函数:
    部分调用者只需要函数中的部分功能,那我们就需要把函数拆分成粒度更细的多个函数,让调用者只依赖它需要的那个细粒度函数。

  3. 如果把“接口”理解为面向对象编程语言中的接口语法(虚基类):
    那接口的设计要尽量单一,不要让接口的实现类和调用者,依赖不需要的接口函数。

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

接口隔离原则侧重的是软件设计的接口
单一职责原则侧重在业务层面的职责划分,即专注业务层面

四、参考资料:

1、小话设计模式原则之:接口隔离原则ISP
2、设计原则之【接口隔离原则】

你可能感兴趣的:(设计模式,接口隔离原则)