这里有很多关于API的东西,但是我无法找到插件API和类库API之间的区别。反正我还是不懂。
在本书 Documenting APIs 中,我读到:插件API和类库API之间的主要区别在于哪一方提供了公开API的实现。
插件API :发布商创建应用程序并公开插件API;第3个>派对开发人员实现API。第三方开发人员插件扩展了发布者应用程序的功能。
类库API :发布者创建API并实现它。最终用户通过其API使用类库来编写应用程序。通过类库,发布者实现了一个公开API的功能库。
我想我理解这个插件。我不清楚类库API。它是否像打印机制造商创建基于O / S类库的驱动程序,以便他们的打印机使用该O / S?
如果是这样,你能解释一下API本身的差异吗?它们是否仍然是一组暴露的方法?发布商如何实现自己的API?
参考
记录API:http://www.amazon.com/documenting-APIs-writing-developer-documentation/dp/0963002104
What is the difference between a Java API and a library?
Difference between framework vs Library vs IDE vs API vs SDK vs Toolkits?
答案 0 :(得分:4)
它们都是软件界面。这意味着它们看起来都很相似,通常是包含带有接口,类,异常等的包(或多个包)的Java归档(JAR)。
我能理解为什么你发现书中的解释令人困惑。就API本身而言,两种情况都提供了Java实现。
主要区别在于如何使用此Java代码。对于Plugin API(我喜欢称之为服务提供者接口或SPI),您主要希望通过实现提供的Java接口和/或扩展提供的类来添加您自己的功能。另一方面,您只需要调用一个库API(我喜欢简称为API),很少需要实现接口或扩展类。
由于它们的使用方式,您设计SPI的方式与设计API的方式之间存在许多细微差别。虽然我没有专门比较SPI和API的帖子,但当我讨论API设计的各个方面时,我通常会指出这些差异: