2012-02-11 14 views
5

ここにはAPIの内容がたくさんありますが、プラグインAPIとクラスライブラリAPIの区別に必要なものが見つかりません。私はとにかくそれを取得しません。本の中で プラグインAPIとクラスライブラリAPI

文書化するAPIは、私が読んで:プラグイン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?

API vs Toolkit vs Framework vs Library

答えて

4

彼らは両方のソフトウェアインターフェースです。つまり、インタフェース、クラス、例外などのパッケージ(または複数のパッケージ)を含むJavaアーカイブ(JAR)の両方が似ていることを意味します。

なぜこの本の説明がわかりにくいのか分かります。 API自体については、どちらの場合でもJavaの実装が提供されています。

主な違いは、このJavaコードの使用方法です。プラグインAPI(私はそれをサービスプロバイダインタフェース(SPI)と呼ぶのが好きです)では、提供されているJavaインタフェースを実装したり、提供されたクラスを拡張して、独自の機能を追加することが主に考えられます。一方、あなたはライブラリAPI(単にAPIと呼ぶのが好きです)を呼び出すことしか期待されていません。インターフェイスを実装したり、クラスを拡張することはめったにありません。

どのように使用されるかによって、SPIの設計方法とAPIの設計方法には微妙な違いがあります。

http://theamiableapi.com/

+0

ありがとう、Ferenc。あなたのウェブサイトは非常に参考になります、特に記事[進化を予期して](http://theamiableapi.com/?s=spi+vs+api) – genghis

0

ライブラリ::私はSPIとAPIを、比較専用のポストを持っていませんが、私はAPIの設計のさまざまな側面を議論するとき、私は通常、これらの違いを指摘する方法の束の集合でありますより多くのタスクを実行するために使用されます。

プラグイン:特定のタスクを実行するために使用されるいくつかの方法のコレクションです。

関連する問題