For*_*ing 6 c# nhibernate design-patterns
我有一个表示包含许多计算属性的域实体的类.大多数计算依赖于也计算的其他属性.在它最简单的形式中,类的示例可能看起来像这样.
public class AnalysisEntity
{
public decimal InputA { get; set; }
public decimal InputB { get; set; }
public decimal InputC { get; set; }
public decimal CalculatedValueA
{
get { return InputA * InputC; }
}
public decimal CalculatedValueB
{
get
{
decimal factor = FactorGenerator.ExpensiveOperation();
return CalculatedValueA / factor;
}
}
public decimal CalculatedValueC
{
get { return InputA * InputB; }
}
public decimal CalculatedValueD
{
get { return (CalculatedValueA * InputB) / CalculatedValueB; }
}
public decimal CalculatedValueE
{
get { return CalculatedValueD / aConstant; }
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这个解决方案让我有以下问题:
我已经尝试使用计算器对象和策略模式来设置属性的内部字段,但我最终得到了一个过长的控制函数来强制进行计算.同时将所有计算移动到另一个对象会将原始实体转变为贫血域对象,我应该避免阅读.
我应该使用哪些设计模式和类结构来解决上述问题?
谢谢