第一部分:设计模式六大原则解读——什么是接口隔离

设计模式六大原则解读——什么是接口隔离

author:陈镇坤27

创建日期:2022年1月31日

一、接口隔离

1、接口隔离的定义

接口分两种:实例接口(对一个类型的事务性描述:new 某个实例);类接口(interface定义的接口)

隔离定义为:*Clients should not be forced to depend upon interfaces that they don’t use.*或

The dependency of one class to another one should depend on the smallest possible interface.

即不应该强制客户端去依赖它们不需要的接口

一个类对于另外一个类的依赖,应该建立在最小接口上。

简单来说,接口隔离要求保持类的纯洁性。

2、接口隔离的目的

提升系统的可维护性。

3、接口隔离与单一职责的区别

单一职责的划分角度是业务逻辑。同属一个业务逻辑的方法放在一个接口上。在模块调用时,对于不应该被某个不需要用到的模块而言,只能通过“文档”约束其调用行为。

接口隔离要求是对于模块内的接口,应该尽量做到不相干的方法不暴露方法,也就是尽量提供纯洁的接口给到模块调用。

4、 接口隔离的案例分析

在这里插入图片描述

侦探侦查美女,但对美女的定义有潜在发生变化的可能。

如果将具有多个特质的属性都放在美女接口类中,若仅仅通过扩展子类的形式去实现IPettyGirl接口,且无法满足IpettyGril所有的特质时,只能对对应的方法体进行置空,那么于AbstractSearcher而言,其审美的标准依然是IpettyGril接口定义的3个方法,不利于系统维护——当不需要某些特指时,侦探代码无法感知到变化发生。

正确的做法是提前预测业务的发展,按照接口隔离原则,进行接口方法的切分,让AbstractSearcher的依赖更灵活。

在这里插入图片描述

5、建议

拆分接口时,尽量要细粒度,但要以保证单一职责为前提。

接口要慎重对外公布public方法。

不同模块对同一接口业务的应用,按接口隔离原则拆分,防止出现业务冗余。(例如对外部系统和对内部系统,同一个接口的业务逻辑,在类接口上进行拆分,产生两个不同的表面类型接口)。

6、总结

接口既是对实例的定义,也是对interface的定义。按照接口隔离原则,从高层调用的角度出发,可以通过适配多个interface的方式来提升接口的纯洁性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈镇坤27

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值