接口在计算机软件中的作用举足轻重,它和类的继承各自扮演着重要角色

尽管接口在软件制作中占有举足轻重的地位,但许多小伙伴对其还是知之甚少。而且,还有人问接口和类的继承有什么区别。故有必要对其作一介绍。


简单地说,一个软件的接口,对客户而言,它向客户描述软件有何功能;对程序员来说,它要求程序员用代码实现这些功能。也就是说,软件的接口向客户展示其功能,给程序员安排工作任务,让他们实现这些功能。如下图就是一个汽车接口示意图:



如上图所示,客户一看到该汽车接口,便一目了然知道此汽车有什么功能,是用来做什么的。而实现此汽车接口中的功能的,则是程序员在背后去做的工作。比如,客户一看方向盘,便知其有控制汽车向哪个方向运动的功能,但至于怎样实现这个功能的,则是程序员背后完成的工作。


因此,接口对项目经理和软件开发负责人员十分重要。当拿到一个软件开发项目后,项目经理要使程序员们开发的软件达标,就必须先给程序员制定开发要求和标准,即提供开发软件功能的必要方法的抽象概括,让程序员去实现这些方法,这就是接口的功用。


而且,接口还能解决软件开发中遇到的人力协调难题。比如,有的开发人员能力很强,但是脾气古怪。他们难于跟同事密切配合,不利于团队工作的开展,但没有他们,软件开发的某些功能又没有人能够完成。这时,若能给这些怪才一个接口,他们就可愉快地去独自完成这项功能的开发,而不必为配合而烦恼了。如下面展示的图片,就是我们的伙伴曾遇到过的烦恼:







那么,接口、客户、实现接口的类(以java为例),它们之间是一种怎样的关系呢?我依然用汽车接口为例子予以说明。如下图所示:



如上图所示,我们首先为汽车写一个接口,接口中包含许多公有方法,比如runCar( )、countCar( )等。


接着,我们给参加此汽车软件开发的程序员分配任务,比如安排甲程序员写方向盘类,乙程序员写计数表类,等等。他们都必须实现接口中的相应公有方法,否则,开发出来的软件就不符合要求。最后,我们写一个客户类,以让客户调用接口,从而激活相应的类为客户服务。具体表现为:


首先,如(1)线条指示的那样,Wheel(方向盘类)和Counter(计数表类)分别实现了接口MyCar;


接着,如(2)线条所示,接口MyCar将类Wheel和Counter分别在类Client(客户)中,设置相应的变量aWheel和aCounter;


最后,在(3)处,Client调用类Wheel和Counter,从而将其激活,即实例化。进而使类为客户服务。


上面介绍了接口,那么类的继承与它的区别在哪里呢?主要就一点:接口主要是安排程序员的工作任务,而类的继承主要是为了提高程序员的工作效力。


因为一个子类一旦继承了它的父类,它就拥有了父类的方法,从而不用自己再去写实现方法了,进而节省了程序员的时间,也就提高了工作效率。而接口却是规定了一些方法要程序员去实现,因而是一种安排任务的方式。

你可能感兴趣的:(接口在计算机软件中的作用举足轻重,它和类的继承各自扮演着重要角色)