XSD から生成された 4 つの同様のクラス構造があります。それぞれが異なるバージョンの API です。
問題は、これらすべての異なるクラス構造で動作するクラスがありますが、コードの大部分はすべての構造で同じです。すべてのクラスは XSD から生成されるため、クラスごとにインターフェイスを持つことはできません。それでも、コードベースから重複を削除したい...
ここで良い OO ソリューションは何でしょうか?
ありがとう。
XSD から生成された 4 つの同様のクラス構造があります。それぞれが異なるバージョンの API です。
問題は、これらすべての異なるクラス構造で動作するクラスがありますが、コードの大部分はすべての構造で同じです。すべてのクラスは XSD から生成されるため、クラスごとにインターフェイスを持つことはできません。それでも、コードベースから重複を削除したい...
ここで良い OO ソリューションは何でしょうか?
ありがとう。
少しオブジェクトコンポジションを使用します。共有機能を保持するクラスを定義し、生成された各クラスのメンバーとしてインスタンスを保持します。クラスで保持する可変状態の量を最小限に抑えて、テストを容易にするようにしてください。
私はおそらくファサードクラスを使用するつもりです。このクラスは、他の 4 つのクラスについて知っておく必要がある唯一のポイントです。正しいクラスへの呼び出しの中継を処理します。このようにして、重複コードの削減を達成するだけでなく、コードベースの残りの部分から API を抽象化し、API の変更に対処しやすくします。
HTH。