在Delphi中自动化逻辑

3

我需要在Delphi应用程序中自动化一些非常复杂的业务规则(保险)。到目前为止,我们使用脚本引擎来维护这些规则(许多if/then/else类型语句),但这已经变得难以维护和无法测试,并且很难向最终用户验证这些规则。

我查看过的大多数正式规则引擎与Delphi集成不良(当前使用D2007,但计划在今年转移到64位XE2)。

是否有人知道任何产品或已经使用过任何产品或技术,可以帮助我解决这个问题?


3
我认为你的解决方案(脚本引擎)很不错。也许你应该试着改进测试和可维护性。 - philnext
1
我认为你需要实现状态模式 - http://en.wikipedia.org/wiki/State_pattern - Henri Gourvest
1
我强烈推荐Eric Evans的《领域驱动设计》一书。 - mjn
3个回答

2
“脚本确实是处理业务逻辑中可能会改变的部分的好方法。但是,我怀疑您遇到的问题是缺乏适当的对象模型。有很多IF语句表明您有集中的逻辑,然后决策取决于许多因素,您必须检查所有这些因素并最终导致混乱。这是直接使用数据而不是使用对象工作的症状。当您直接操作数据时,必须知道适用的所有规则。我始终主张以模型为中心的解决方案。通过正确设计的对象模型,责任分散在模型中的类之间,从而消除了热点。这与单一职责原则不要重复自己相对应。当然,挑战在于对问题域进行建模,但这是我建议探索的路径。”

+1. 我完全赞同倡导面向对象建模。 - menjaraz

1

我在谷歌上没看到这个...一直在评估它,它非常强大。肯定解决了我的问题。只需要看看是否可以证明将其添加到我的工具箱中是有必要的... - Denzil Bowmaker
已决定采用这个解决方案。它比我需要的功能更多,但只花了我大约四个小时将我的规则转换为决策表,使用SDK将它们集成到我的Delphi应用程序中,并组合一个基本测试套件。 - Denzil Bowmaker

0

看一下RemObjects SDK(如果你还需要直接数据库访问,则使用DataAbstract)。它们允许在服务器和客户端同时进行脚本编写

我们已经成功地使用了DataAbstract。


1
你能多说一些关于你的业务领域和所涉及的复杂性吗?谢谢。 - menjaraz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接