说我有两种类型:一个子类上计算值的最佳设计模式?
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
是可空类型。通过。
还有吗?你会选择哪一个?
我不是一个网络小家伙。这里有没有使用朋友类的东西的可能性? – vrbilgi
虽然朋友会提供帮助,但它与公开内部方法或制定者的问题仍然相同,只是公众是一个较小的组合。 –