Drools规则引擎-为什么使用规则引擎

   日期:2024-12-27    作者:yd18092630986 移动:http://mip.riyuangf.com/mobile/quote/57057.html

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075) 交流学习。

Drools规则引擎-为什么使用规则引擎


上文我们说过,规则引擎其实就是将if else全部给抽离出来了。但是这就是我们的规则引擎的全部内容吗?规则放在哪里都是放,为什么一定要拿规则引擎来抽离呢?肯定是规则引擎给我们解决了某些问题。本文主要讲的就是规则引擎是解决什么的方案

为什么使用规则引擎

  • if else需要抽离不是目的
  • 也不是规则引擎有优秀的编码语法

从实例看问题

真实需求分析:新增用户,在新增用户的时候,根据用户的所在地打标记,比如:某用户是北京的,标记北漂,是广州的,标记广漂,依次类推。第一版需求我们看到的代码可能是这样的

 
  • 感觉这些if else很多我们可以提炼一些公共的地方,同时根据规则,我们可以应用策略模式,或者责任链模式,来优化这样的层级结构。

上面的需求版本迭代:领导发现,某一地区的用户很多,比如:北京,如果说北京新增人员全都用北漂来标记,标记出来的用户将近十几万,这样子不利于数据分析和收益转化,于是乎,在北京这个地域的条件上加了个条件,年龄段,18-30标记‘北漂青年’,30-40,‘北漂实力户’等等。看到的代码可能就变成了这样了

 
  • 当需求变更只有,我们还能使用策略模式吗?还能使用责任链吗?注意到这里就有了一个很重要的问题,我这实例里面为了突出if else这样的规则,省略了业务代码,但是真实的开发当中,我们一般会在if else里面去写很多的对应的业务代码,根据我们的标记,来给用户推送,同时去编写推送策略和推送短信之类的。那再这样的情况下我们的设计模式就不在实用了。最关键的就是如果实用设计模式,整体的代码架构就失去了灵活性,共性的地方太多,如果规则再次变更,要更改的地方太多。

为什么版本迭代让我们的很多方式优化if else失去了作用

  • 很多地方不能解决规则和业务分离
  • 多数优化方式都不能直接或间接的灵活分配,很多都是利用共性抽离的
  • 规则迭代的时候,优化部分很容易出现牵一发动全身

规则引擎应用的话,能解决这样的问题吗

  • 规则引擎最大的作用就是灵活的将规则和业务剥离

总结


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号