我會抽象地說一點,使問題陳述簡潔和簡潔。出於所有目的,我們假設.NET/C#作爲底層技術/語言。一種類型與多種類型
假設您正在編寫一個軟件程序並設計一些類/類型來表示某個感興趣的實體。你會發現這個實體有一些不同狀態的生命週期。當這個實體從一個狀態過渡到另一個狀態時,它們獲得了某些屬性/屬性但是失去了其他的屬性。
現在,如果您要設計一個類/類型來表示這樣的實體,則一種設計選擇將是引入一種包含整個生命週期中實體的所有可能屬性的超集的全包類類型。
另一種選擇是引入某種類型的層次結構,其中您使用不同的類型表示感興趣的實體,其中每個類型代表特定狀態下的實體。
現在我的問題是:
一般而言,怎麼能決定是否代表一個實體的不同狀態/方面採用性能更好的完成/屬性上單一類型對不同類型的?
如果您選擇使用多種類型來表示你的實體:
一個。你將如何處理這個實體的某些特性在多個狀態中存在/定義的情況?
b。如果你的實體使用JSON被持久化/序列化了呢?考慮到所有代表不同的狀態的不同類型,你將如何序列化並反序列化它?