2011-12-14 17 views
0

サードパーティ製のライブラリは私にインターフェイスを提供します(つまり、このインターフェイスを実装するオブジェクトが得られます)。Configとしましょう。 私のアプリケーションでは、サードパーティのライブラリへの依存を避けるために、このオブジェクトが提供するすべての機能を自分のInterface経由で必要としています。MyConfigConfigをどうやってラップできますか?それ以外に第三者図書館をラップしようとする正しいアプローチですか?依存関係を回避するサードパーティ製インターフェイスをラップします

+1

あなたはまだそのライブラリからオブジェクトを取得している場合、そのライブラリへの依存を避けることができますか? – corsiKa

+0

あなた自身のフレームワークと考えて、あなたの新しいアプリケーションでそれを使用したいのですが、私のフレームワークをライブラリではなく私のアプリケーションに結びつけたいと思っています。 – davidmontoyago

答えて

1

コンパイル時の依存関係を避けるためにサードパーティライブラリをラップすることはできますが、実行時にサードパーティライブラリが存在する必要があります。

最も簡単な方法は、単にメソッド(のIDEが自動的にこれらを作成することができます)委任持っているだろう。もちろん

public class DefaultMyConfig { 
    private Config delegate; 
    public MyConfig(Config delegate) { 
     this.delegate = delegate; 
    } 
    public String foo() { 
     return delegate.foo(); 
    } 
} 

を、あなたはConfigインターフェースと同じであるインターフェイスを定義し、それを実装することができますDefaultMyConfigに登録するか、クラスでのみ滞在することができます。

+0

私はあなたの答えを理解していません。実行時にサードパーティのライブラリをどのように使用できますか? – bragboy

+0

あなたのアプリケーションでは、ライブラリをラップし、アプリケーションの残りの部分に独自のインターフェイスで公開するクラスを1つ持つことができます – Bozho

関連する問題