1.1 接口的一般概念

接口(interface)是计算机领域中专用的抽象概念,也是一个含义很广的名词。它是一种方法,也是一种做法,是相对于计算机主系统之外所有软硬件配置的统称。从软件技术方面讲,接口是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码可以调用组件对象的功能达到设计者的目的。

接口是一种特殊的类,它的特殊在于该类中所有的方法都没有方法体。接口可以用来声明引用类型的变量,但不可以实例化,因为它的方法是不完整的。所以,使用接口也就是补全接口所规定的所有方法的方法体。

接口是用来定义程序的一种协定。实现接口的类或结构要与接口的定义严格一致。有了这个协定,理论上可以抛开编程语言的限制。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。

接口描述了组件对外提供的服务。组件和组件之间、组件和客户之间都是通过接口进行交互的。因此组件一旦发布,它只能通过预先定义的接口来提供合理的一致的服务。一个组件可以实现多个组件接口,而一个特定的组件接口也可以被多个组件来实现。

组件接口必须是能够自我描述的。这意味着组件接口应该不依赖于具体的实现,将实现和接口分离,彻底消除了接口的使用者和接口的实现者之间的耦合关系,增强了信息的封装程度。同时这也要求组件接口必须使用一种与组件实现无关的语言。目前组件接口的描述标准是IDL语言。

由于接口是组件之间的协议,因此组件的接口一旦被发布,组件生产者就应该尽可能地保持接口不变,任何对接口语法或语义上的改变,都有可能造成现有组件与客户之间的联系遭到破坏。每个组件都是自主的,有其独特的功能,只能通过接口与外界通信。

从硬件技术方面讲,接口是相对于计算机主系统硬件之外所有硬件外设配置的统称。对于单片机来说,接口就是对单片机I/O口确定具体内容(含硬件与软件)的一种规定和做法。