私たちのアプリケーションは、私たちの管理下にないデータスキーマを使用して別のシステムへのユーザーインターフェイスを提供します。このアプリケーションは、CSLAを使用してビジネスオブジェクトを作成し、サードパーティシステムのデータを編集できるようにします。ただし、サードパーティのデータスキーマが進化するにつれて、それとともに進化する必要があります。ただし、お客様はいつでも、異なるデータスキーマを備えたサードパーティシステムの任意のバージョンを使用できます。したがって、アプリケーションは、顧客がたまたま持っているスキーマのサポートされているバージョンに適応できる必要があります。
これを解決するために、おそらく戦略パターンを使用することを検討しました。基本的に、データスキーマの最下位バージョンをサポートする基本クラスを持ち、その後、後続の各バージョンをサポートする派生クラスを持ちます。次に、データスキーマの現在のバージョンに対応するクラスを返すファクトリがあります。ただし、これが引き起こす可能性のある、長くて紛らわしい継承チェーンの可能性を懸念しています。この問題を解決するためのより良い方法はありますか?おそらく継承の代わりに構成を使用しますか?
このhttp://securesoftwaredev.com/2009/05/31/supporting-multiple-versions-of-a-data-model/を処理するための可能な方法を概説するこの投稿を見つけました
このアプローチが私たちに役立つかどうかはわかりませんが、何かを実装する前に他のアイデアを得たいと思っていました。