面向接口编程及面向接口编程的好处

一:什么是接口?

接口指的是只含有抽象方法的类(抽象类的定义是只要含有一个抽象方法的类,当然也可以含有多个)。在其中的方法只能是public的并且我们不能new一抽象类。JAVA中引入接口很大的原因是为了弥补JAVA中的没有的多继承机制。

二:面向接口编程:

因为接口是一种定义,我们大多时候站在一个系统的角度来看问题时我们更多关注系统中对象与对象的关系和模块与模块间的定义,我们不必一起考虑每个对象中数据是怎么操作的。接口更多的就是定义一种标准,表达一种对象与对象或者模块与模块间的关系。因为我们要进行模块实现的时候我们才去考虑系统内部的实现。

三:面向接口编程的好处:

面向接口编程最直观的好处就是高内聚,低耦合,这也是java一直所强调的。JAVA运行父类指向子类的引用,因此面向接口编程就很好的解耦。这也为我们的程序提供很大的方便,比如我们系统底层需要变化的时候我们不需去考虑上层接口,只要我们面向接口这一套标准去进行编程那么我们就可以实现。当然这也提高了程序的可扩展性,这一点在很多框架,JDBC上都得以体现,比如现在很多商用的数据,JAVA只需要给出一套标准及接口,让公司自己去实现这些接口就可以。

四:面向接口综述:

通过上文,我想大家对接口和接口的思想内涵有了一个了解,那么什么是面向接口编程呢?我个人的定义是:在系统分析和架构中,分清层次和依赖关系,每个层次不是直接向其上层提供服务(即不是直接实例化在上层中),而是通过定义一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接口依赖,而不依赖具体类。

这样做的好处是显而易见的,首先对系统灵活性大有好处。当下层需要改变时,只要接口及接口功能不变,则上层不用做任何修改。甚至可以在不改动上层代码时将下层整个替换掉,就像我们将一个WD的60G硬盘换成一个希捷的160G的硬盘,计算机其他地方不用做任何改动,而是把原硬盘拔下来、新硬盘插上就行了,因为计算机其他部分不依赖具体硬盘,而只依赖一个IDE接口,只要硬盘实现了这个接口,就可以替换上去。从这里看,程序中的接口和现实中的接口极为相似,所以我一直认为,接口(interface)这个词用的真是神似!


使用接口的另一个好处就是不同部件或层次的开发人员可以并行开工,就像造硬盘的不用等造CPU的,也不用等造显示器的,只要接口一致,设计合理,完全可以并行进行开发,从而提高效率。

你可能感兴趣的:(面向接口编程及面向接口编程的好处)