接口隔离原则有哪些

接口/总线/驱动

1115人已加入

描述

  C#接口,即Interface,每个人都很知道它并了解它。但知道和了解,并不表示,你能把它用好。

  实际上,如果看下你身边工作中的同事,包括你自己,回想一下,自己平时写代码所定义的接口多不多?很遗憾,我没有确切的统计数据,根据我个人的经验来看,4年经验以下的程序员,基本不怎么自己编写接口,抽象类甚至也很少。

  4年经验以下的程序员,通篇程序,充斥着各种不是public就是private,以及static。此观点代表个人经验,非统计数据。

  本文不讲解面向对象,不铺开,所以仅针对接口来说。

  回归话题,接口,首先我们回顾一下面向对象的设计原则之一:接口隔离原则。

  接口隔离原则,就是要以最小的依赖来创建接口。通常我们一个类,可能会需要实现很多方法,如果将这么多的方法都抽象在同一个接口上,那么就会产生强依赖,不利于扩展。因为别人也会想要用这个接口,但是你在接口中定义了那么多的方法,我只要想实现你的接口,就必须实现你所有的方法,这个依赖性就太强了。所以,接口隔离原则,就是将业务设计进行最小的划分创建各自的接口。

  我们以例子说明:

  接口

  接口

  上面的例子是以头条为例简单写的一个类,如果不加以隔离,那么它对应的接口将是这样子的:

  接口

  此时,如果另一个类A它只需要app列表,然后去做其它事情,那么它继承了这个IByteDance接口,它就不得不实现它所有的方法。而实际上,这个新类A它仅仅需要下面这一个方法就足够了:

  接口

  如此,就造成了接口依赖性强,强加了各种别人不需要的方法。

  那么我们要如何改造这个接口呢?可以按业务设计拆分下面的多个接口:

  接口

  接口

  然后将类ByteDance继承自IByteDance接口:

  接口
责任编辑人:CC

  ​

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分