我需要在Delphi应用程序中自动化一些非常复杂的业务规则(保险)。到目前为止,我们已经使用脚本引擎在外部维护这些规则(很多if / then / else类型语句),但这很难维护,也无法测试,很难用最终用户验证这些。
我看过的大多数正式规则引擎都没有与Delphi很好地集成(目前正在使用D2007,但计划今年转向64位XE2)。
是否有人知道任何产品或使用过任何可以使用的产品或技术?
答案 0 :(得分:2)
脚本确实是处理可能会发生变化的部分业务逻辑的好方法。
但是,我怀疑你遇到的问题是你没有适当的对象模型。拥有许多IF表明你拥有集中逻辑,然后决策取决于你必须检查并最终导致混乱的许多因素。
这是直接使用数据而不是使用对象的症状。直接操作数据时,您必须知道所有适用的规则。
我一直倡导以模型为中心的解决方案。通过适当设计的对象模型,责任在模型中的类之间传播,从而消除热点。这与Single responsibility principle和Don't repeat yourself。
相对应当然,挑战是对问题域进行建模,但这是我建议探索的路径。
答案 1 :(得分:1)
通过Object Connections查看常识。但我没有经验。
答案 2 :(得分:0)
查看RemObjects SDK(DataAbstract,如果您还需要直接数据库访问)。它们允许服务器端和客户端scripting。
我们已经使用Databastract取得了巨大的成功。