Мне нужна помощь в решении проблемы с дизайном.Я пытаюсь добиться этого:
У меня есть основной класс с именем Document.Этот класс имеет список классов атрибутов.Эти классы атрибутов имеют некоторые общие свойства, такие как Identity и Name, но они отличаются одним свойством, которое я называю Value.Тип Value отличается для каждого отдельного класса Attribute и имеет тип string, integer, List, DateTime, float, List, а также классы, состоящие из нескольких свойств.В качестве примера можно привести класс, который я бы назвал PairAttribute, у которого есть 2 свойства: Title и Description.
Чего я хочу добиться, так это безопасности типов для свойства Value дочерних классов Attribute, и эти дочерние классы должны иметь возможностьбыть добавлен в список атрибутов в классе документа.Я мог бы создать только один класс Attribute, у которого есть свойство Value объекта type и что с ним покончено, но это именно то, чего я стараюсь избегать.
Должны быть размещены общие свойства (Identity и Name).в базовом классе, я думаю, давайте назовем этот класс AttributeBase.Но я хочу иметь дочерний класс, скажем StringAttribute, где свойство Value имеет тип string, класс IntegerAttribute, где свойство Value имеет тип Integer, StringListAttribute, где свойство Value имеет тип List, класс PairAttribute, где Valueкласс с несколькими свойствами и т. д.
Знаете, как я могу это реализовать?Это решение, к которому я должен стремиться, или это лучшие способы решения проблемы безопасности этого типа?Буду признателен за примеры кода для пояснения:)