1. ホーム

[解決済み】SPIとAPIの違い?

2022-03-25 13:08:34

質問

とはどのような違いがあるのでしょうか? サービスプロバイダインタフェース(SPI) アプリケーションプログラミングインターフェース(API) ?

具体的には、Javaのライブラリの場合、何がAPIやSPIになるのでしょうか?

どのように解決するのですか?

  • APIは、あなたが作成したクラス/インターフェイス/メソッド/...の記述です。 を呼び出して使用します。 目的を達成するために、そして
  • SPIは、あなたが を拡張して実装する。 目標を達成するために

言い換えれば、APIは特定のクラス/メソッドが何をしてくれるかを示し、SPIは適合するために何をしなければならないかを示しています。

通常、APIとSPIは別々になっています。例えば、JDBCでは Driver クラス はSPIの一部です。単にJDBCを使いたいだけなら、直接使う必要はありませんが、JDBCドライバを実装する人は皆、このクラスを実装しなければなりません。

しかし、時には重なることもあります。 は、その Connection インターフェース 両方 SPIとAPIのこと。JDBCドライバを使用する際に日常的に使用するもので、JDBCドライバの開発者が実装する必要があります。