目次 | 前へ | 次へ |
稼動中の JavaTM 仮想マシン* にプラグインを追加できるようにするには、そのプラグインを Java バイトコードファイル (.クラスファイル) にコンパイルしておかなければなりません。このクラスファイルには、API によって定義されているさまざまなクラスのサブクラスのコードが入ります。たとえば、イメージを読み込む機能を提供するプラグインには、API によって定義された javax.imageio.ImageReader
という abstract クラスの新しいサブクラスが含まれています。クラス名の一意性を保証するには、インターネットのドメイン名を逆にして使うという慣例を採用できます。
プラグイン全体をロードしてインスタンス生成すると負荷が掛かり過ぎることがあるので、そのプラグインについての情報を提供するため、付加的なクラスを「代役」として使用します。このクラスは、たとえば、プラグインを実際にインスタンス生成する前に、そのプラグインによって処理できるファイル形式を判別するために使用できます。
この「代役」オブジェクトは軽量なので、Java 仮想マシンの 1 回の起動の範囲内でこの API が使用されるたびにロードしてインスタンスを 1 つ生成しても負荷が掛かり過ぎません。利用可能なサービスについての情報を提供するために小さいクラスを利用するというこのパターンを、「サービスプロバイダインタフェース」といいます。