違いは何ですかサービス プロバイダー インターフェイス (SPI)そしてアプリケーション プログラミング インターフェイス (API)?
より具体的には、Java ライブラリの場合、何が API や SPI となるのでしょうか?
ベストアンサー1
- APIは、目的を達成するために呼び出して使用するクラス/インターフェース/メソッドなどの記述であり、
- SPI は、目標を達成するために拡張および実装するクラス/インターフェース/メソッドなどの説明です。
言い換えると、API は特定のクラス/メソッドが何を行うかを示し、SPI は準拠するために何を行う必要があるかを示します。
通常、APIとSPIは別々です。例えば、JDBCではクラスDriver
SPI の一部です。単に JDBC を使用する場合は、直接使用する必要はありませんが、JDBC ドライバーを実装するすべてのユーザーはそのクラスを実装する必要があります。
ただし、重複する場合もあります。インターフェースConnection
SPI と API の両方です。JDBC ドライバーを使用するときに日常的に使用し、JDBC ドライバーの開発者が実装する必要があります。