サードパーティ製のライブラリは私にインターフェイスを提供します(つまり、このインターフェイスを実装するオブジェクトが得られます)。Config
としましょう。 私のアプリケーションでは、サードパーティのライブラリへの依存を避けるために、このオブジェクトが提供するすべての機能を自分のInterface経由で必要としています。MyConfig
でConfig
をどうやってラップできますか?それ以外に第三者図書館をラップしようとする正しいアプローチですか?依存関係を回避するサードパーティ製インターフェイスをラップします
0
A
答えて
1
コンパイル時の依存関係を避けるためにサードパーティライブラリをラップすることはできますが、実行時にサードパーティライブラリが存在する必要があります。
最も簡単な方法は、単にメソッド(のIDEが自動的にこれらを作成することができます)委任持っているだろう。もちろん
public class DefaultMyConfig {
private Config delegate;
public MyConfig(Config delegate) {
this.delegate = delegate;
}
public String foo() {
return delegate.foo();
}
}
を、あなたはConfig
インターフェースと同じであるインターフェイスを定義し、それを実装することができますDefaultMyConfig
に登録するか、クラスでのみ滞在することができます。
関連する問題
- 1. Herokuを回避するグローバル依存関係を構築する
- 2. サードパーティ製のjarファイルの依存関係を無効にします
- 3. .NETで.dllの依存関係を回避する方法
- 4. 使用してサードパーティの依存関係
- 5. travis CIのサードパーティ依存関係
- 6. サードパーティの依存関係追跡ツール
- 7. 初回コンパイル時の依存関係の依存関係
- 8. Laravelインターフェイス依存関係注入
- 9. Springブートはサードパーティの依存関係を上書きするバージョン
- 10. サードパーティのlibs依存関係でjavaagentを展開する方法
- 11. 依存関係の割り当てエラーを回避するためのベストプラクティス?
- 12. Pythonの依存関係を一覧表示するためのコード、回避ループ
- 13. angular2のサードパーティ製コンポーネントをラップする
- 14. 依存関係が解決される前に、mavenでサードパーティの依存関係をインストールしてください
- 15. Eclipse RCP - 製品の依存関係
- 16. 依存関係の依存関係をダウンロードする
- 17. ダガー2、インターフェイスを依存関係に追加する方法
- 18. サードパーティのライブラリに対するAngular.js依存関係の順序
- 19. 依存関係の依存関係
- 20. 依存関係のプロパティ依存関係
- 21. Maven依存関係プラグインコピー依存関係はoutputDirectoryを無視します
- 22. CMAKE:依存関係の依存関係を自動的に追加します
- 23. 依存関係プラグインは依存関係のバージョンを無視しますか?
- 24. ネイティブC++ DLLを.NETにラップするDLLの依存関係を追跡する
- 25. Rust/Cargoでサードパーティ製の静的Cライブラリの依存関係を処理する方法は?
- 26. 継承された依存関係プロパティをラップする正しい方法
- 27. サードパーティの非mvn jar依存関係を持つサードパーティ非mvn jarをインストールします
- 28. X11を使用しないサーバーでRを実行し、壊れた依存関係を回避する方法
- 29. 巨大な依存関係を避けるスパークを含む
- 30. 依存関係を作成せずにマジックナンバーを避ける
あなたはまだそのライブラリからオブジェクトを取得している場合、そのライブラリへの依存を避けることができますか? – corsiKa
あなた自身のフレームワークと考えて、あなたの新しいアプリケーションでそれを使用したいのですが、私のフレームワークをライブラリではなく私のアプリケーションに結びつけたいと思っています。 – davidmontoyago