2010-11-23 5 views
2

私はそのようなソリューションが適用されるプロジェクトを継承しました:サードパーティのライブラリの異なるバージョンのユーティリティの設計

サードパーティライブラリの5バージョンがあります。また、対応するバージョンのサードパーティライブラリのユーティリティを含む5つのプロジェクトがソリューションに含まれています。

ソリューションのかなり多くのユーティリティクラスは、サードパーティライブラリのすべてのバージョンで同じコードを持っています。複製の問題はこのように解決されます。すべてのプロジェクトで同じにする必要があるコードファイルは、共通フォルダに保存され、すべてのプロジェクトへのリンクとして追加されます。

リンクを使用してコードを共有するのが最良のアプローチだとは思わない。 悪いアプローチであるかどうか教えてください。それがそうであれば、そのようなコードの重複を解決する正しい方法は何か教えてください。

ありがとうございます。

答えて

1

これが「悪い」かどうかはかなり主観的です。

理由のためにリンクされたコードファイルがあります。このようなファイルを複数のプロジェクトで共有する必要があることがあります。

サードパーティのライブラリがバージョン間でどのように異なるかによって、これらの違いを扱うラッパーコードを記述し、これを分離することができます。

+0

私はラッパーを書くことを考えましたが、私のケースでは2つの理由で該当しません。1. APIがかなり大きく(数百クラス)、ラッパーが簡単ではありません。 2.ラッパー・クラスを書くことは、ラッパーに重複問題を移すことになります。 – ika

+0

おそらくそれをテンプレートまたは2つで自動化し、インターフェイスを生成し、ライブラリバージョンに基づいて必要とされるラッパー実装を起動するだけです。しかし、はい、そうするにはまともな量の作業が必要です。 –

関連する問題