我问过自己这个问题很多次,但一直没有想到解决方案。
假设有一种仓库管理软件,它将所有保存的产品输出为json文件。产品可以以一般形式或更具体的形式保存。
例如,有两种类型的产品:
General product: { "pid": 12345, "name": "SomeGeneralProduct" }
Special product: { "pid": 67890, "name": "SpecialProduct", "color": "green" }
可能会有更多变化,但所有变化都具有pid
和name
的共同点。
现在我想解析和分析一堆以JSON文件形式获得的产品。
我可以创建一个包含产品可能拥有的所有成员的类Product
,但我认为这是浪费时间/可维护性的做法,可以用更 OOP 的方式解决。唯一的问题是到目前为止我找不到任何关于这个主题的资料。
最终我真正想要的是类似于这样的东西:
class BaseClass
{
public int Pid { get; set; }
public string Name { get; set; }
}
class DerivedClass : BaseClass
{
public string Color { get; set; }
}
string jsonProducts = "JSON-DATA-OF-PRODUCTS";
List<BaseClass> products = SomeDeserializer.Deserialize(jsonProducts);
(注:我知道我想要的例子太简单了,但我只是想明确表示如果可能的话,我不想在我的主代码中有大量的if / else或switch语句)
我想知道如何解决这个问题?是否有任何库可以处理这个问题,或者有什么好的方法来解决这个问题?