【发布时间】:2013-04-05 15:32:10
【问题描述】:
我正在开发一个数值模拟库,它以由不同计算算法操作的单个数据集合为中心。算法很复杂,它们具有涉及多个参数的不同状态,并且是可互换的(在某些语义限制下)。
为了避免集合的臃肿接口并启用不同的实现等,我正在考虑使用基于策略的设计。这为集合提供了存储结构、算法、参数、内部内容之间的广泛选择组合。
如果我想象我重新设计了我的通用/面向对象的现有设计使用策略,我该如何选择最佳算法和数据结构?从概念上讲,我需要定义一组策略和一组验证测试用例并执行参数研究。
当使用面向对象编程时,这很容易,因为我可以在运行时确定所有必要的类型及其参数,例如使用一个基于字符串的抽象工厂,其类型名称存储在输入文件中,然后由在一系列测试用例上执行客户端应用程序的外部脚本更改。
如果 N 个策略的组合最终成为 N 个不同的客户端应用程序,我该如何使用策略来做到这一点?
如何以专业的方式完成自动化测试和基于策略的设计?
【问题讨论】:
-
就像你暗示的那样,在运行时没有办法做到这一点!听起来您需要编写一个脚本来生成所有可能的策略排列,然后以某种方式将其粘贴到您的性能测试代码中。我不知道有什么现成的工具可以做这种事情,但也许其他人会:)
-
我正在考虑结合外部脚本编辑宏,该脚本将类型名称存储在表中并对其进行置换,然后它调用编译器,然后是一个自动测试套件:客户端应用程序在这种情况下,allways 具有相同的名称。但是我想知道实际使用的是什么?
标签: templates optimization automated-tests generic-programming