0

我的应用程序用于离心泵叶轮设计。允许用户通过winform gui实时更改某些属性(流速、尺寸等),并且应该实时向他提供大部分结果。

有 13 个用户可更改参数和大约 70 个计算参数。

大多数计算在数学上都非常复杂,其中一个参数需要迭代(不超过 10 次迭代)。

到目前为止,我对包含并计算所有参数的类的解决方案是:

  1. 使用描述用户可更改参数的属性和计算结果参数的方法进行分类。
  2. 类是不可变的,并在创建时计算所有内容。
  3. 使用 .NET 4.0 中的惰性类的惰性解决方案

我在 CR 上问过这个问题,这是我从哪里得到 Lazy 解决方案的。

所以我的问题是哪种方法最适合“实时”解决方案?还有其他更好的解决方案吗?

4

1 回答 1

2

我会选择解决方案 1,我怀疑每个泵都具有相同的属性,只是属性值不同。

public class Pump
{
    public double Speed { get; set; }
    public double Size { get; set; }
    public void GetCFM() { return Speed * Size; }
}

任何调用都GetCFM将始终返回最新的计算。

如果您不想手动调用GetCFM,则可以改为实现观察者模式。使用观察者模式,您将触发一个处理程序,该处理程序在任何属性更改时都会收到通知。

另外,我怀疑您对实时计算的理解与文章中解释的不同。

于 2012-07-11T19:19:47.633 回答