AmazonやIMDBなどのさまざまなソースから情報を引き出して、私が持っている映画/音楽/本の情報を保存するアプリケーションを作成することで、オブジェクト指向設計/データベース設計をしています。 ...ムービー、ブック、アルバムなどのプロダクトオブジェクトは、1つ以上のソースからの属性で構成され、オブジェクトの異なるタイプ間で重なり合っています(例:すべての製品にタイトル、ASINがあります)。さらに、さまざまなソースには同じ情報(リリース日など)といくつかの異なる情報が含まれている可能性があります(IMDBには、Amazonからこの情報を引き出すのではなく、使用したいキャストメンバーに関する詳細情報が含まれています)。私は、これらの重複する属性をどのソースから取得するかを選択できるようにしたいと考えています。簡単な例のためにリンクされた画像を参照してください:OODメディアルックアップアプリケーション
http://imageshack.us/photo/my-images/194/drawing1r.png/
私は他を作成し続ければそれもmoreso私はMovieクラスにパーサクラスで定義されたすべての属性を再定義することは少し冗長であるように思える、とブック、アルバム(ASIN、IMDBIdなどを再定義する)などのクラス。それはちょうど私がこの間違って近づいているようです。
拡張性と保守性に優れたより優れたデザインの提案はありますか?
IMDB/Amazonの解析では、Productが単一のソースからの情報のみで構成されていないため、Productオブジェクトを作成しません。私が分析クラスの属性を保持するのは、 "Product"クラスの特定の属性に使用するデータソースを選択できるようにするためです。 IProductSourceインターフェイスを作成するのは難しいです。各ソースが異なる属性を取得している可能性があるからです。 – user623879