我在尋找設計我如何實現大量計算,以便代碼看起來乾淨並且可以是單元可測試的。這就是我現在所做的。c#模式或許多計算的設計
我有一般形式的塊,MainEngine,AuxEngine,Boilers,WaterBoilers等等。每個塊都有很多屬性。現在我的計算類看起來像這樣。
我用不同的計算邏輯部分類塊
之間/// <summary>
/// My result class wich fill CalculationResult
/// </summary>
public partial class CalculateBlocks
{
private readonly IClassificatoryService _classificatoryService;
private readonly IReportService _reportService;
public CalculationResult Result = new CalculationResult();
/// <summary>
/// Ctor with DI
/// </summary>
public CalculateBlocks(IClassificatoryService classificatoryService,IReportService reportService)
{
_classificatoryService = classificatoryService;
_reportService = reportService;
}
public void Calculate()
{
CalculateGeneral();
CalculateMainEngine();
//and a lot more blocks
}
}
public partial class CalculateBlocks
{
private void CalculateGeneral()
{
Result.General.TotalReports = 2 + 2;
}
}
public partial class CalculateBlocks
{
private void CalculateMainEngine()
{
Result.MainEngine.Power = 1000;
}
}
而且我的實體看起來像這樣
public class CalculationResult
{
public CalculationResult()
{
General = new General();
MainEngine = new MainEngine();
}
public General General { get; set; }
public MainEngine MainEngine { get; set; }
}
public class General
{
public decimal? TotalReports { get; set; }
//... more here
//... more here
//... more here
}
public class MainEngine
{
public decimal? Power { get; set; }
//... more here
//... more here
//... more here
}
純計算通常是單位可測試的 - 提供輸入,運行計算,驗證輸出。你關心什麼部分? – 2014-09-30 12:35:13
incase你還沒有看到這個,我確定你有..但incase你沒有..很好的資源:http://www.dofactory.com/net/design-patterns – Tony 2014-09-30 12:49:47