скажем, у меня есть два типа:
ClassA
{
int ValueA;
int CalculatedA;
}
ClassB
{
int ValueA;
int CalculatedA;
int ValueB;
int CalculatedB;
}
CalculatedB
требует ValueA
, а также ValueB
. Я пытаюсь выбрать лучший шаблон для реализации этого.
Опция 1: Подкласс ClassA
и добавление дополнительных значений. Имейте общий Update()
метод, который переопределен в подклассе. Это простой код в модели, но код для создания этих классов должен знать, что создавать заранее, и любой код, который перебирает список этих типов, должен выполнять проверку типов для работы с дополнительными полями.
Вариант 2: Имейте дополнительные свойства в отдельном классе, и там есть код обновления для CalculatedB
. Проблема с этим заключается в том, что ClassB
тогда требуется какой-то способ узнать, когда обновляется ValueA
, и я надеялся, что не нужно реализовывать что-то вроде INotifyPropertyChanged
в этих классах. Другим способом сделать это является использование какого-либо общедоступного метода Update для класса дополнительных свойств и вызов основного метода для вызова этого метода при обновлении ValueA
. Также не желательно.
Вариант 3: Просто укажите ClassB
с ValueB
и CalculatedB
, которые могут быть обнуляемыми типами. Pass.
Есть еще? Что бы вы выбрали?