我正在阅读 Sedgewick 和 Wayne 撰写的 算法 的第一章(以及 Java 编程简介 的前两章)。我不明白API是什么意思。以下为书中节选:
举例如下:
这是我的问题:
API 是代码库的接口。它由用于与库交互的对象和方法组成。
好问题。系统在某种程度上可以比作一个谜题。例如,网站可能由 WordPress 博客引擎和数据库 (MariaDB) 组成。如果两者都被视为拼图块,则它们相应面的形状必须匹配才能将它们组合在一起。 WordPress 没有间插和空白,而是使用 SQL,MariaDB 也使用 SQL。如果 SQL 方言匹配,则各块之间的行是相同的,并且一个块可以插入到另一个块旁边,因此两个块都具有兼容的软件接口。不过,API 并不是很短,而是要复杂得多。
大多数 API 包含大量函数/方法,双方必须有相应的行为。正如 Kirby 所写,从技术上讲,API 是客户端和库之间的“线条形状”。但这个词已经变得极其混乱,因为它获得了许多其他含义。通常,API 表示线条形状的描述,即 API 的 规范,它可以是描述库中对象的文档,也可以是一组 Java 接口。从这个意义上说,那么是的,API(规范)可以是“Java 代码的一部分”。
从技术上讲,API 与类声明的不同之处就像拼图边缘的形状与拼图本身不同一样; SQL 与 MariaDB 有很大不同。话虽如此,在实际行话中,API 已被用来指代 API 的实现。在网络中尤其如此。当人们谈论 web API 时,他们通常指的是 服务,为消费者提供 API 实现。
简而言之,API的含义已在很大程度上/过度推断,现在您问题的答案取决于上下文。如果我们将软件接口和 API 进行类比,在前面的示例中,当前的行话可以使用“API”来指代:
在 Java 上下文中,API 通常是一个小包,其中包含抽象类,这些抽象类在实现该 API 的一个或多个包中实现。