アプリケーションに統合している電子メール コンポーネントがあり、必要に応じて別のサード パーティ コンポーネントと交換できるように、その周りにラッパーを構築する方法に関するヒントを探しています。
現在の私のアプローチは次のとおりです。
- インターフェイスを構築すると、必要な機能が得られます。
- このクラス内のサードパーティ コンポーネントを使用して、インターフェイスを実装するクラスを作成します。
このコンポーネントの使用は、次のようにインターフェイスを介して行われます。
IPop3 pop3 = 新しい AcmeIncePop3Wrapper(); pop3.connect();
AcmeIncePop3Wrapper の内部は次のようになります。
public void connect()
{
AcmeIncePop3 pop = new AcmeIncePop3();
pop.connect();
}
それは良いアプローチですか?
おそらく ninject を使用して別の抽象化を追加して、実装を交換することができますが、サードパーティのアセンブリを毎日変更することを期待していないため、実際にはこれで十分なようです。物事をそれほどきつくしたくないだけです。カップリング。