知识卡片

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

普通读书笔记卡 · 1874.c.1

内容

接口隔离原则(ISP):客户端不应依赖它不需要的接口;类间依赖应建立在最小接口上,即”多用 专门接口,少用臃肿接口”。它与[[单一职责原则的定义]]视角不同:SRP关注职责是否单一(业务 划分),允许一个接口的方法都属同一职责;ISP更进一步要求即使职责一致也应按访问模块拆成 多个专门接口。发散:SRP管”该不该存在这么多方法”,ISP管”该不该挤在同一份契约里暴露”。

参考来源

- 位置:《设计模式之禅(第2版)》第4章《接口隔离原则》(源文件:_epub-src/text/part0015.html) - 结论依据:原文给出ISP两种英文定义并翻译,随后专门对比"这与单一职责原则不是相同的吗?错",指出SRP按业务逻辑划分职责、ISP要求方法尽量少且提供多个专门接口,二者审视角度不同。 - 原始内容:接口隔离原则与单一职责的审视角度是不相同的,单一职责要求的是类和接口职责单一,注重的是职责……而接口隔离原则要求接口的方法尽量少……它要求"尽量使用多个专门的接口"。