Вход на сайт
Абасс... обсудите рахитекурту
3762 просмотров
Перейти к просмотру всей ветки
в ответ alex445 18.05.24 07:37
Можно ли сделать лучше для описанной задачи (напомню - выделено жирным)? Может что с интерфейсами намутить?
Ничего мутить не надо.
Надо просто вынести валидацию в отдельную функцию и каждый класс должен валидировать то, за что он отвечает.
public class Param { double maxValue; public virtual double MaxValue { get { return maxValue; } set { maxVaslue = value; Validate (); } } protected virtual Validate () { } } public class ParamVolatile : Param { double currentValue; public double CurrentValue { get { return currentValue; } set { currentValue = value; Validate (); } } protected override void Validate () { base.Validate (); currentValue = Math.Clamp(value, 0, MaxValue); } }