2009-07-31 9 views
0

API(Visio API - Microsoft.Office.Interop.Visio)を拡張したいと考えています。クラスは封印されていません。彼らは彼らの中で奇妙なCOMのものが起こっている。APIをカプセル化するためのオプション

私のオプションは何ですか?

具体的には、私のアプリのビジュアルロジックから純粋な(外部の)APIアクセスを分離する最良の方法は何ですか?

答えて

0

Proxyまたは(おそらくより適切な)Adapterパターンを使用します。

基本的な考え方は、ラッピングするクラスのインスタンスを含むラッパークラスを作成することです。ラッパークラスには、実際の作業を行うためにラップされたクラスに委譲する使用方法に応じたメソッドがあります。これにより、ラップされたクラスの依存関係をラッパークラスのコードのみに分離することができます。

0

私はインターフェイスクラスを作成します。

あなたのインターフェイスクラスは、すべてのCOMのものを呼び出す責任があるC#になります。

コードの他の領域(ビジネスレイヤー)で、ドキュメントのインターフェースクラスを呼び出します。

たとえば、インターフェイスのSave()とCOMの署名が同じ場合でも、関数を直接公開することはありません。それはあなたの将来の拡張性の自由を与えるでしょう。

関連する問題