C# OOD媒体查找应用程序

C# OOD媒体查找应用程序,c#,C#,我正在玩面向对象设计/数据库设计,通过创建一个应用程序,可以从各种来源(如Amazon或IMDB)获取信息,以保存我看过或看过的电影/音乐/书籍等的信息。。。电影、书籍、相册等产品对象。。由一个或多个源的属性组成,不同类型的objectseg之间有一些重叠。所有产品都有一个标题,举几个例子。此外,各种来源可能有一些相同的信息,例如发布日期,和一些不同的信息,例如IMDB包含更多关于演员的信息,我可能想使用,而我不会从亚马逊获取这些信息。我希望能够选择从哪个来源获得这些重叠属性。有关简单示例,请参

我正在玩面向对象设计/数据库设计,通过创建一个应用程序,可以从各种来源(如Amazon或IMDB)获取信息,以保存我看过或看过的电影/音乐/书籍等的信息。。。电影、书籍、相册等产品对象。。由一个或多个源的属性组成,不同类型的objectseg之间有一些重叠。所有产品都有一个标题,举几个例子。此外,各种来源可能有一些相同的信息,例如发布日期,和一些不同的信息,例如IMDB包含更多关于演员的信息,我可能想使用,而我不会从亚马逊获取这些信息。我希望能够选择从哪个来源获得这些重叠属性。有关简单示例,请参见链接图像:

在电影类中重新定义我在解析器类中定义的所有属性似乎有点多余,如果我继续创建其他类,如Book、Albumredefining ASIN、IMDBId等,则更是如此。。。。看来我是走错路了


对于更易于扩展和维护的更好的设计,您有什么建议吗?

您可以创建一个名为“产品”的超类,它保存电影、书籍和相册之间的共同属性。然后,这些特定对象类型中的每一个都将从公共父类继承

Amazon和IMDB解析器不应该创建产品对象吗?为什么他们持有产品的属性?如果您单独解析每个产品,您可以说每个产品都解析自己,并在每个特定的产品类或父类中包含代码。每个对象都应该有一个特定的函数或表示一个特定的对象-您的解析器是表示一个对象,还是执行创建对象的函数解析


您还可以为每种类型的源创建一个公共父类,或者创建一个接口IPProductSource,然后调用该接口的方法,您的特定对象不知道/不关心接口背后的实际数据源。

IMDB/Amazon解析不会创建产品对象,因为产品并非仅由单一来源的信息组成。我将属性保留在解析类中的原因是,我可以选择将哪个数据源用于产品类的特定属性。创建IPProductSource接口很困难,因为每个源可能获得不同的属性。