我正在使用的应用程序需要复杂的参数化和配置才能对自定义零件进行建模。不同参数之间存在各种相互依赖关系,例如设置参数“A”会使“B”和“C”的某些值无效,或者为参数“D”的值添加额外的约束。
目前,这是通过将所有参数存储在查找表中并在其上运行规则来解决的。规则是用 XML 手写的,被加载并转换为用于规则引擎的某种中间格式。每次参数更改时,都会重新运行所有规则。
同时这非常缓慢且容易出错。
我觉得使用基于(DAG)的方法可能是有益的,我们只能对图的子集进行更新。
这是一个好主意吗?你知道更好的方法吗?如果您遇到过类似的问题,您是如何解决的?
编辑:我正在尝试实现一个设计,其中只有参数的依赖子集必须在更改时更新。目前,规则在每次更改时都会在全球范围内重新运行。参数设置为默认值,但可由用户更改。根据参数的值,其他参数的默认值可能不同。