Я расскажу немного абстрактно, чтобы сделать постановку задачи кратким и кратким. Для всех целей предположим, что .NET/C# является основной технологией/языком.Один тип против нескольких типов
Предположим, вы пишете программную программу и проектируете некоторый класс/тип, чтобы представлять интересующую вас компанию. Вы узнаете, что у этого объекта есть какой-то жизненный цикл с разными состояниями. Поскольку экземпляры этой сущности переходят из одного состояния в другое, они получают определенные атрибуты/свойства, но теряют других.
Теперь, если вы разрабатываете класс/тип для представления такого объекта, одним из вариантов выбора является введение одного всеобъемлющего типа класса, который включает в себя надмножество всех возможных свойств объекта на протяжении всего его жизненного цикла.
Другим вариантом является введение какой-либо иерархии типов, в которой вы представляете интересующую вас компанию, используя различные типы, каждая из которых представляет ее в определенном состоянии.
Теперь мои вопросы:
Вообще говоря, как можно решить, представляющих различные Штаты/аспекты сущности лучше достигается с использованием свойств/атрибутов одного типа против различных типов?
Если вы решили представить свой объект с использованием нескольких типов:
а. Как бы вы решали случаи, когда определенные свойства этого объекта присутствуют/определены в нескольких состояниях?
b. Что делать, если ваша сущность сохраняется или сериализуется, например, с помощью JSON? Как бы вы могли сериализовать его и десериализировать, учитывая все разные типы, представляющие разные состояния?