【发布时间】:2017-09-05 10:16:11
【问题描述】:
我们有一个包含大约 50~60 个属性的类,这些属性依赖于同一类的属性 + 其他类的属性。目前在更改一个属性时,我们正在提高其他 20 个属性的属性更改,这使代码变得混乱且容易出错。处理这种情况的最佳方法是什么?任何建议的设计模式来解决这个问题?
public class ClassA
{
public ClassB classB;
public int Prop1
{
get { return CalculateValueForProp1(); }
}
private int prop2;
public int Prop2
{
get { return prop2; }
set
{
prop2 = value;
OnPropertyChange(nameof(Prop2));
OnPropertyChange(nameof(Prop1));
}
}
private int prop3;
public int Prop3
{
get { return prop3; }
set
{
prop3 = value;
OnPropertyChange(nameof(Prop3));
OnPropertyChange(nameof(Prop1));
}
}
public int CalculateValueForProp1()
{
return (this.prop2 * 10 + this.Prop1 * 20 + classB.AnotherProperty*10);
}
}
【问题讨论】:
-
把它分解成许多责任更小的小类
-
50~60 任何类中的属性只是一个类中的代码太多。像分离关注点这样的基本原理,你不会像那样膨胀一个类。所以解决方案与属性无关,将基础知识。
-
您可以使用
""作为属性名称来引发INotifyPropertyChanged.PropertyChanged事件,这将使只有一个 事件的所有 属性无效。最好的办法是实际执行您所做的code-review。
标签: c# design-patterns properties dependency-properties