Drools规则入门程序:小学生喝汽水问题
上一次将Drools的开发环境配置好之后,我们这一篇用一个简单的问题来入门。
首先来看问题:
1、小明的钱可以购买50瓶汽水。
2、老板搞促销,两个空汽水瓶子可以换一瓶汽水。
问:小明最多能喝多少瓶汽水?
思路一:
先是50瓶,然后用50个空瓶换来25瓶,喝完后用25个空瓶换12瓶再多个空瓶,
喝完后用13个空瓶换6瓶,然后是7个空瓶换3瓶,然后是4个空瓶换2瓶,
然后是2个空瓶换1瓶,最后问老板借1个空瓶,再用2个空瓶换1瓶,
剩下来那个空瓶还给老板。所以喝到50+25+12+6+3+2+1+1=100
思路二:
50块买50瓶汽水,全部喝掉后,得到50个空瓶子。
跟老板借50个空瓶子+自己的50个=100个空瓶子
100个空瓶子再换50瓶汽水。50+50=100.
(可怜的小明...)
我们采用drools引擎规则来模拟一下思路一:
代码清单:
Customer.java
SodaWater.drl
KnowledgeBaseUtil.java (创建KnowledgeBase的工具类)
SodaWater.java 测试类
运行结果:
参考文档: