0

研究了一周的规则引擎,这个问题困扰了我很久。该视图将被确认如下:

  1. 大多数规则引擎都是用 Java 编写的,而不是 C 或 C++
  2. 大多数公司更喜欢选择用 Java 编写的规则引擎,而不是 C 或 C++
  3. 规范。据我所知,JSR-94 是针对 Java 规则引擎 API 的 Java 规范请求,并且没有关于 C++ 的规范。
  4. 社区活动。大多数人对用Java编写的产品感兴趣,例如ILog Jrules,Drools。

真诚地希望你的答复。

4

1 回答 1

3

并不是说它“没那么有用”;只是您发现的唯一规范是 JSR - 它是 Java 标准请求。在这一点之后发生的几乎所有事情都是我个人经验的猜测和证实。

从根本上说,业务规则系统需要随着时间的推移而适应。制定规范的原因是允许您在运行时使用一个规则系统代替另一个规则系统,而无需重新编译应用程序。Java 在这方面有着悠久的历史 - 替换/实现代码是设计的一部分。C++ 代码不会让人们认为它可以这样使用——他们倾向于将 C++ 应用程序视为“单个 blob”,因此它不适合添加额外的类来处理业务规则。

大约 15 年前,我亲自用 Delphi (Object Pascal) 编写了一个 POS 应用程序。当我开始实施可定制的业务规则时,我使用了 PascalScript,它允许在运行时进行定制。我从没想过系统的用户会使用编译器来构建他们的规则集,所以我使用了一种脚本语言,它允许在运行时对应用程序进行重大的动态更改。

回答你的观点:

  1. 由于所使用的环境,规则引擎倾向于用 java 而非 c++ 编写。如果您找到一家仅使用 C++ 的公司,我相信他们的规则引擎将使用 C++
  2. 这是一个环保的选择。如果您使用的是 java,那么规则引擎将使用 java,如果您使用的是 C++,那么规则引擎将使用 C++
  3. 是的,这是一个规范。Java 喜欢它们的规范。
  4. 活动 - 这是一个“政治”观点 - 这与偏好无关,而与部署有关。
于 2012-06-07T04:51:13.633 回答