C#接口,即Interface,每个人都很知道它并了解它。但知道和了解,并不表示,你能把它用好。
实际上,如果看下你身边工作中的同事,包括你自己,回想一下,自己平时写代码所定义的接口多不多?很遗憾,我没有确切的统计数据,根据我个人的经验来看,4年经验以下的程序员,基本不怎么自己编写接口,抽象类甚至也很少。
4年经验以下的程序员,通篇程序,充斥着各种不是public就是private,以及staTIc。此观点代表个人经验,非统计数据。
本文不讲解面向对象,不铺开,所以仅针对接口来说。
回归话题,接口,首先我们回顾一下面向对象的设计原则之一:接口隔离原则。
接口隔离原则,就是要以最小的依赖来创建接口。通常我们一个类,可能会需要实现很多方法,如果将这么多的方法都抽象在同一个接口上,那么就会产生强依赖,不利于扩展。因为别人也会想要用这个接口,但是你在接口中定义了那么多的方法,我只要想实现你的接口,就必须实现你所有的方法,这个依赖性就太强了。所以,接口隔离原则,就是将业务设计进行最小的划分创建各自的接口。
我们以例子说明:
上面的例子是以头条为例简单写的一个类,如果不加以隔离,那么它对应的接口将是这样子的:
此时,如果另一个类A它只需要app列表,然后去做其它事情,那么它继承了这个IByteDance接口,它就不得不实现它所有的方法。而实际上,这个新类A它仅仅需要下面这一个方法就足够了:
如此,就造成了接口依赖性强,强加了各种别人不需要的方法。
那么我们要如何改造这个接口呢?可以按业务设计拆分下面的多个接口:
然后将类ByteDance继承自IByteDance接口:
责任编辑人:CC
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)