接口的英文是 interface。

  interface的中文译名为 “界面” 或 “接口”。当接口是 interface 的译名时,接口是用于沟通的中介物的抽象化概念。

  

接口又分硬件接口(hardware interface)和软件接口(software interface):

  硬件接口:指两个硬件设备之间的连接方式。硬件接口既包括物理上的接口,还包括逻辑上的数据传送协议。

    如:USB、耳机、水龙头、电灯泡等等

涉及到软件程序和其他系统进行交互沟通的时候的接口,它是两个不同事物之间进行适配的一种工具,规范和协议。

    如:api.github.com 连接了服务端和客户端;

      UI (User Interface)用户界面或者用户接口;

      函数,可以公开访问的才能是接口;

       API (Application Programming Interface)应用程序可编程接口,应用程序写代码,可以控制的接口;

      ......

 

软件接口可以分为俩大类:

  程序内部的接口:程序内部方法与方法之间,模块与模块之间的交互。

    如:1.系统(应用层<->service<->DB):

        应用层,可以看成是系统所提供的 UI 层功能。对于 Web 系统来说,可以认为是浏览器页面上所提供的功能,登录、注册、查询、删除等。

        Service 层,可以理解为服务器所提供数据和逻辑的处理。

        DB 层(Data Base, 数据库):主要用来存放数据。      

      例:首先是 Service 提供了一个查询接口,这个接口需要一个参数(查询的关键字);

        然后应用层提供了一个输入框,需要用户输入查询关键字,并且还提供了一个查询按钮用于提交查询的关键字。当用户输入关键字并点击提交按钮后,相当于调用

的查询接口,查询接口需要对用户提交的关键字做出相应判断,是否为空;

        其次,通过 DAO 层调用数据库,根据关键字查询表中的数据;

        最后,再将拿到的数据返回给应用层,应用层负责将数据展示到 Web 页面上。

      2、系统(服务<->服务),即程序之间的调用

      例:假设系统开发一个用户查询接口,输入用户名,返回用户信息(性别、年龄、手机号、邮箱、地址等),如果用户不存在则返回 null;现在需要新开发一个用户抽

奖的接口,该接口需要用户名和抽奖动态 id,抽奖接口得到用户名后可以调用用户查询接口,如果用户查询接口返回 null,那么抽奖接口就可以直接返回用户不存了。在这个例子

中,用户抽奖接口就调用的用户查询接口。那么这里的用户查询接口和抽奖接口本质上就是程序开发的函数或类方法,提供入参与返回值。


  程序对外的接口:系统获取或调用其他系统的资源或信息时,都是从统一规定的通道(即接口)进行数据传递交互。

    如:系统与系统之间的接口,这里可以是公司内部不同系统之间的接口调用,也可以是不同公司之间系统接口的调用。