选择规则匹配系统的语言/范例

时间:2013-08-08 04:14:40

标签: design-patterns programming-languages

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

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

依旧等等......

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

1 个答案:

答案 0 :(得分:1)

您提供的背景非常模糊,但我建议您查看CLIPS,至少看看rule programming paradigm是否符合您的需求。

基于规则的语言的优势在于它们提供免费的引擎来评估规则并根据某些标准(对于您的规则集来说这可能太多了)来激活它们,从而允许您以声明的方式指定规则(它们与发动机“分开”,你不需要定义。)

每个规则都可以视为两部分模板:

part_to_match => actions_to_do

CLIPS引擎按正向链接规则运行,Prolog通过向后链接它们。