接口隔离原则

Interface Segregation Principle

客户端不应被强迫依赖于其不使用的方法。

尽量缩小接口的范围, 使得客户端的类不必实现其不需要的 行为。

根据接口隔离原则,你必须将“臃肿”的方法拆分为多个颗 粒度更小的具体方法。客户端必须仅实现其实际需要的方法。否则,对于“臃肿”接口的修改可能会导致程序出错,即使 客户端根本没有使用修改后的方法。

继承只允许类拥有一个超类, 但是它并不限制类可同时实现 的接口的数量。因此, 你不需要将大量无关的类塞进单个接 口。你可将其拆分为更精细的接口, 如有需要可在单个类中 实现所有接口, 某些类也可只实现其中的一个接口。

示例

假如你创建了一个程序库, 它能让程序方便地与多种云计算 供应商进行整合。尽管最初版本仅支持阿里云服务, 但它也 覆盖了一套完整的云服务和功能。

客户端不应被强迫依赖于其不使用的方法。

假设所有云服务供应商都与阿里云一样提供相同种类的功能。但当你着手为其他供应商提供支持时, 程序库中绝大部分的 接口会显得过于宽泛。其他云服务供应商没有提供部分方法 所描述的功能。


                                     

修改前:不是所有客户端能满足复杂接口的要求。

尽管你仍然可以去实现这些方法并放入一些桩代码, 但这绝 不是优良的解决方案。更好的方法是将接口拆分为多个部分。能够实现原始接口的类现在只需改为实现多个精细的接口即 可。其他类则可仅实现对自己有意义的接口。   

修改后:一个复杂的接口被拆分为一组颗粒度更小的接口

与其他原则一样, 你可能会过度使用这条原则。不要进一步 划分已经非常具体的接口。记住, 创建的接口越多, 代码就 越复杂。因此要保持平衡。

下一节依赖倒置原则

推荐阅读:

单一职责原则

开闭原则

里氏替换原则

Markdown极简入门教程结论及其扩展阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这就是编程

让我看到你的头像

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值