[英]Design suggestion for expression tree evaluation with time-series data
我有一个使用财务时间序列数据的(C#)遗传程序,目前正在运行,但是我想重新设计该体系结构,以使其更强大。 我的主要目标是:
这是我考虑过的可能方法:
DataSet
获取数据行来评估表达式树(当前,我正在传递行索引并进入多个同步数组以获取数据)。 第一种方法的好处是将数据行传递到表达式树中,并且不再对数据集进行任何查询(这将提高多线程环境中的性能)。 缺点是表达式树无法访问其余数据(以防某些功能需要使用以前的数据行进行计算)。
第二种方法的好处是,表达式树可以访问最新数据行之前的任何数据,但是除非我指定该行是什么,否则我将不得不遍历各行并找出哪一个是最后一行。
混合的好处是,它通常应该表现得更好,并且仍然提供对早期数据的访问。 它支持数据的两个基本“视图”:最新行和先前行。
你们是否知道任何设计模式,或者您有什么技巧可以帮助我构建这种类型的系统? 我应该使用DataSet来保存和呈现数据,还是在维护简单接口的同时,有更有效的方式来呈现数据行?
仅供参考:我所有的代码都是用C#编写的。
您所说的主要是关于操作的,这不应该是面向对象设计的第一个倡议。 我建议您创建映射到数据表每一行的RowObject,并创建另一个类RowObjectManager,其中包含RowObject和相关操作(如调用算法)的集合。 这非常类似于Facade模式,您可以将算法封装在另一个类中,并使用依赖项注入方式调用算法,该方式可以与RowObjectManager类分离。
然后,您应该将OBJECT而不是对象的属性(如index)传递给算法,然后算法可以将结果返回给调用方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.