2012-02-11 23 views
5

這裏有很多關於API的東西,但我無法找到我需要的插件API和類庫API之間的區別。反正我不明白。插件API與類庫API

在這本書中,記錄API,我閱讀:插件API和類庫API之間的主要區別在於哪一方爲暴露的API提供實現。

插件API:發佈者創建應用和公開了一個插件API;第三方開發者實現了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?

API vs Toolkit vs Framework vs Library

回答

4

他們都是軟件接口。這意味着它們看起來都很相似,通常是包含一個包(或多個包)的Java歸檔文件(JAR),其中包含接口,類,例外等。

我可以理解你爲什麼從書中找到解釋混淆。就API本身而言,兩種情況都提供了Java實現。

主要區別在於如何使用此Java代碼。對於插件API(我喜歡稱之爲服務提供者接口或SPI),您主要希望通過實現提供的Java接口和/或擴展提供的類來添加自己的功能。另一方面,你只需要調用一個庫API(我喜歡簡單地稱之爲API),你很少期望實現接口或擴展類。

由於如何使用它們,您在設計SPI的方式和設計API方式之間存在許多細微的差異。雖然我沒有專門用於比較SPI和API,帖子的時候我討論API設計的各個方面,我通常會指出這些差異:

http://theamiableapi.com/

+0

謝謝,費倫茨。您的網站非常有幫助,特別是文章[預測進化](http://theamiableapi.com/?s=spi+vs+api)。 – genghis 2012-02-12 23:54:14

0

庫:是一堆方法的集合用來執行更多的任務。

插件:是一些用於執行特定任務的方法的集合。