c#接口,即interface,每个人都很知道它并了解它。但知道和了解,并不表示,你能把它用好。
实际上,如果看下你身边工作中的同事,包括你自己,回想一下,自己平时写代码所定义的接口多不多?很遗憾,我没有确切的统计数据,根据我个人的经验来看,4年经验以下的程序员,基本不怎么自己编写接口,抽象类甚至也很少。
4年经验以下的程序员,通篇程序,充斥着各种不是public就是private,以及static。此观点代表个人经验,非统计数据。
本文不讲解面向对象,不铺开,所以仅针对接口来说。
回归话题,接口,首先我们回顾一下面向对象的设计原则之一:接口隔离原则。
接口隔离原则,就是要以最小的依赖来创建接口。通常我们一个类,可能会需要实现很多方法,如果将这么多的方法都抽象在同一个接口上,那么就会产生强依赖,不利于扩展。因为别人也会想要用这个接口,但是你在接口中定义了那么多的方法,我只要想实现你的接口,就必须实现你所有的方法,这个依赖性就太强了。所以,接口隔离原则,就是将业务设计进行最小的划分创建各自的接口。
我们以例子说明:
上面的例子是以头条为例简单写的一个类,如果不加以隔离,那么它对应的接口将是这样子的:
此时,如果另一个类a它只需要app列表,然后去做其它事情,那么它继承了这个ibytedance接口,它就不得不实现它所有的方法。而实际上,这个新类a它仅仅需要下面这一个方法就足够了:
如此,就造成了接口依赖性强,强加了各种别人不需要的方法。
那么我们要如何改造这个接口呢?可以按业务设计拆分下面的多个接口:
然后将类bytedance继承自ibytedance接口:
BlueCoin配套使用的软件包介绍
面对苹果iPhone8的发布,华为mate10淡定出奇,麒麟970+惊艳的外观设计叫板iPhone8
杰理科技:全球领先射频智能终端等系统级芯片设计企业
区块链用于时装界的好处是什么?
通用模拟前端AFE是什么
接口隔离原则有哪些
未来一年的手机市场依旧是以人工智能为主导
制动系统常见故障有哪些_制动系统常见故障产生的原因及应急方法
海康威视全彩黑光球型摄像机的性能特点及应用评测
AiP5901是一款单通道触摸按键IC,主要应用于驱动单个电容式触摸按键,输出模式可通过硬件进行配置
立体声音频功率放大器CS8395,4种防破音可选
华硕发布两款采用半高式刀版设计的GTX1650显卡 竟自带背板
虹膜识别技术是什么?虹膜识别技术安全可靠吗?
换5G选iQOO!6月酷粉日来袭,万元礼包等你拿
弘景光电创业板IPO获受理
三维晶片加速量产 3D IC接合标准年底通关
隔离器件与电机控制二三事
如何调试超声波焊接机
广告传播神器——镜面广告机
回流焊机是什么,它的应用领域有哪些