1

我维护了一个内部 Java 应用程序,它只不过是一组规则,由大量级联的 if/else 语句来实现。

if(string1.equals(earlierString)){
  if(!!string2.equals("YADAYADA")){
     errorReport.add("BLAHBLAHYADAYDA error.");
  }
  else{
    if(string3.equals("MAYBENOT!")){
      errorReport.add("POSSIBLE error");
    }
  }
}

等等等等...

展望未来,我有很大的自由来选择如何重写它,即使它需要学习时间和培训,所以没有任何选择是真正不可能的。什么语言和高级设计范式最适合这个问题?我的主要目标是通过轻微/适度的规则更改来制作更容易更新的东西。

4

1 回答 1

1

您提供的上下文非常模糊,但我建议您查看CLIPS,至少看看规则编程范式是否适合您的需求。

基于规则的语言的优点是它们免费提供一个引擎来评估规则并根据某些标准触发它们(这对您的规则集来说可能太多了吗?)允许您以声明性方式指定规则(它们是“分开的”) ' 来自您不需要定义的引擎)。

每条规则都可以看作是一个两部分的模板:

part_to_match => actions_to_do

CLIPS 引擎通过正向链接规则工作,Prolog通过反向链接规则工作。

于 2013-08-08T07:29:10.953 回答