1、是对某个问题的抽象,及用户与解决该问题的软件组件之间进行交互的方式;
2、定义可复用模块,该模块可以嵌入到用户的应用程序中;
3、一个明确定义的接口,可以为其他软件提供特定服务。
现实中应用程序常基于众多的API建立起来,分层架构中高层API往往依赖于底层API。如下例图:

使用API的目的: 为某个组件的功能提供逻辑接口,并隐藏该模块内部的实现细节(抽象、封装、复用)。
举个现实中的例子:
两种方案:

“实现方式可能是将部分任务转包给幕后的其他对象” —— Meyer
那么C++语言体系下的API是怎样构造的呢?我们来一探究竟吧!!!
关于API的全称有两种:

接口是开发者所编写的最重要的代码,接口出现问题,修复成本远高于其它代码。更有甚者,API开发直接关系项目的成败。
API开发要素:
让我们看看API开发中存在那些值得特别关注的要素。

API的好处:
如果我们在开发一个模块给用户使用,一种好的方式是构建API让用户访问模块的功能。
API开发与普通的应用程序开发相比,需要投入更多的时间和精力,全面的考虑各种使用场景,以及提供API使用文档和长期的维护。
