对接口的理解

在面向对象语言的Java中,接口(Interface)是一种特殊的抽象类,接口里包含的所有方法都是抽象方法;

很多人都听说过PCI接口、AGP接口,很容易就把它理解成是主机板上的插槽,其实不然。

当我们说PCI接口时,指的是主机板上的那条插槽遵守了PCI规范,而具体的PCI插槽只是PCI接口的实例

对于不同型号的主机板而言,它们各自的PCI插槽都需要遵守一个规范,遵守这个规范就可以保证插入该插槽里的板卡能与主机板正常通信。对于同一个型号的主机板而言,它们的PCI插槽需要有相同的数据交换方式、相同的实现细节,它们都是同一个类的不同实例。

从下图可以看出,同一个类的内部状态数据,各种方法的实现细节完全相同,类是一种具体实现体,而接口定义了一种规范,接口定义某一批类所需要遵守的规范,接口并不关心这些类的内部状态数据,也不关心这些类里方法的实现细节。它只规定这批类里必须提供某些方法,提供这些方法的类就可满足实际需要。


可见,接口是从多个相似类中抽象出来的规范,接口不提供任何实现。接口体现的是规范和实现分离的设计哲学。

规范和实现分离正是接口的好处,让软件系统的各组件之间面向接口耦合,是一种松耦合的设计。

例如,主机板上提供了PCI插槽,只要一块遵守PCI接口规范,就可以插入PCI插槽内,与该主机板正常通信。至于这块显卡是哪个厂家制造的,内部是如何实现的,主机板无需关心。

类似的,软件系统的各模块之间也应该采用这种面向接口的耦合,从而尽量降低各模块之间耦合,为系统提供更好的可扩展性和可维护性。

因此,接口定义的是多个类共同的公共行为规范,这些行为是与外部交流的通道,这就意味着接口里通常是定义一组公用方法。

扫描二维码关注公众号,回复: 1636561 查看本文章

猜你喜欢

转载自blog.csdn.net/DYD850804/article/details/80723815