我会抽象地说一点,使问题陈述简洁和简洁。出于所有目的,我们假设.NET/C#作为底层技术/语言。一种类型与多种类型
假设您正在编写一个软件程序并设计一些类/类型来表示某个感兴趣的实体。你会发现这个实体有一些不同状态的生命周期。当这个实体从一个状态过渡到另一个状态时,它们获得了某些属性/属性但是失去了其他的属性。
现在,如果您要设计一个类/类型来表示这样的实体,则一种设计选择将是引入一种包含整个生命周期中实体的所有可能属性的超集的全包类类型。
另一种选择是引入某种类型的层次结构,其中您使用不同的类型表示感兴趣的实体,其中每个类型代表特定状态下的实体。
现在我的问题是:
一般而言,怎么能决定是否代表一个实体的不同状态/方面采用性能更好的完成/属性上单一类型对不同类型的?
如果您选择使用多种类型来表示你的实体:
一个。你将如何处理这个实体的某些特性在多个状态中存在/定义的情况?
b。如果你的实体使用JSON被持久化/序列化了呢?考虑到所有代表不同的状态的不同类型,你将如何序列化并反序列化它?