複数の同様の外部ライブラリを使用するためのアダプタインターフェイス(および実装)を作成します。Java、2つの異なる汎用インスタンス間で変換する
たとえば、外部ライブラリのインターフェイスがあります。これらのライブラリは、Converter
を実装し、機能を拡張するために登録するためのガイドです。
のLib A
public interface AConverter<S, D> {
D convert(S source);
}
のLib B
public interface BConverter<S, D> {
D convert(S source);
}
両方のインターフェイスは、同じ方法を指定します。
私が欲しいのは、私自身のMyConverter
インターフェイスを使用することです。
public interface MyConverter<S, D> {
D convert(S source);
}
ユーザーは、このクラスを実装し、自分のライブラリーは、AConverter
のLIBAの実装やBConverter
のLibBの実装のいずれかに実装を変換します。これは可能ですか?
EDIT:
私は工場出荷時のパターンをしたいか、LIBAインターフェイスとLibBインタフェースを拡張しません。 MyConverterはコアライブラリ、LibAとLibBは外部プラグ可能なライブラリです。
public interface MyConverter<S, D> extends AConverter<S, D>, BConverter<S, D> {
...
}
あなたは今、ライブラリ・インタフェースのいずれかの代わりにそれを使用することができます:私がしようとしています何
は
public ALibAdapter {
AConverter change(MyConverter convert) {
/**
* Anything I can do?
*/
return aConverter;
}
}
ありがとうございますが、私はコンバータインターフェイスでmakeとlibの依存関係をしたくありません。 –