Skip to content

an easy rule engine framwork in Java /一套简单的Java规则引擎框架

Notifications You must be signed in to change notification settings

singular-point/RuleNg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RuleNg

an easy rule engine framwork in Java 一套简单的Java规则引擎框架

本引擎框架是一个非常优秀的DSL设计方案,能抽象核心业务逻辑,方案兼具可读性,维护性,扩展性,解决方案堪称经典。

框架主要依赖三个类:Condition,Action,DTree,分别用于实现条件判断、触发动作和流程控制。基于该框架,实现复杂逻辑流程图实现大致分为三个步骤:

编写 Conditon 对象,以实现条件的判断。 编写 Action 对象,以实现满足不同的条件情形下触发的相应动作。 将 Condition 对象和 Action 对象进行组合,从而得到一个 DTree 对象,该对象的 run 方法即可以实现逻辑流程。

总结下来,在实现较为复杂的流程时,采用 dtree 可以将复杂的逻辑分成一个个小块,最后自由组合,这样既方便管理和维护,同时也方便扩展,即便是非常复杂的逻辑,也可以在细分成更小、更简单的逻辑块后,分别实现这些“小逻辑”,最后将其组合起来。

假如要根据学生的年龄(age)、兴趣(interest)、性别(gender)的不同为学生提供不同的礼物。

假定要实现的逻辑示意图为:

+++root:
|      +++年龄<12:
|      |      +++喜欢 运动:
|      |      |      ---女生 --> 送 笔记本
|      |      |      ---男生 --> 送 足球
|      |      ---Else --> 送 书
|      +++年龄>=15:
|      |      ---喜欢 写作 --> 送 笔记本
|      |      ---Else --> 送 书
|      +++Else:
|      |      ---男生 --> 送 足球
|      |      ---女生 --> 送 书

About

an easy rule engine framwork in Java /一套简单的Java规则引擎框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages