网站首页 > java教程 正文
2.2使用规则引擎的优势。
接下来说一下使用规则引擎的优势。
·第一条,业务规则与系统代码进行了分离。前面也提到过了,使用规则引擎之后的效果就是把业务规则从业务代码里边单独分离出来了,这样就可以实现业务规则是不是集中来管理。在规则引擎当中集中管理这些规则,这是第一个优势。
·第二条,在不重启服务的情况下可以对业务规则进行扩展和维护。后边随着课程的讲解就能够看到,在不重启服务的情况下这些规则就可以进行变更、动态维护。
·第三条,可以动态修改业务规则,从而快速响应需求的变更。大家可以想象一下,如果没有使用规则引擎,是不是把这些规则if、ls判断的业务规则通过串行代码的方式体现出来?一旦业务规则发生了变化,这个时候是不是就需要来修改代码,并且重启服务之后才能够去生效?这样是不是快速响应就无法达到?
使用规则引擎之后就可以快速的来响应需求的变更,一旦需求有变化,直接动态的来修改一下业务规则,就类似于动态的去修改一下数据库里面的数据,并不用重启服务,这是使用规则引擎的第三个好处。
·第四条,规则引擎是相对独立的,只关心业务规则。这就使得业务分析人员并不是开发者,而是业务分析的主要搞业务的这些人,他们也可以参与去编辑、维护系统里面的业务规则。因为这个其实本质上是跟技术无关的,是纯业务的,就是业务规则。这样业务分析人员也可以参与业务规则的制定、维护、编辑等等。
这就是因为它是相对独立的。再来想象一下,假设没有规则引擎,这样这些业务规则需要通过代码的方式体现出来。这样真正的业务人员其实是不懂技术的,说白了是不会写代码的,这样是没有办法参与这些规则的编辑还有维护工作的。
·第五条,减少了硬编码业务规则的成本和风险。因为不使用规则引擎,在代码里边需要写e、f、x各种判断,这其实是属于硬编码。一旦业务规则发生变化,就需要去修改这些代码,这样成本跟风险是不是都是比较高的?
所以大家可以看到上面提到的这些优势,归根结底还是基于业务规则从系统代码里边分离出来,根本上是因为分离出来了才会产生这么多的优势,这是根本的原因。是因为规则跟代码进行了分离。
·再来看最后一个,规则引擎其实提供了相应的编辑工具,当时在做课程介绍的时候也提到过,有一个叫做沃克奔驰,沃克奔驰是一个图形化的界面,这是专门的编辑工具,可以在沃克奔驰当中进行业务规则的编辑工作。
这样在使用复杂的业务规则的时候,让它变得简单,来操作规则,来制定规则,来动态维护规则等等,在编辑工具里面都可以完成。
这就是使用规则引擎之后能得到的一些好处,或者使用规则引擎的优势就体现在这几个方面。
猜你喜欢
- 2024-10-25 Spring Boot 整合流程引擎 Flowable,so easy
- 2024-10-25 规则引擎重塑业务灵活性,但是你真的会用吗?
- 2024-10-25 Java表达式求值引擎Aviator(二)(java数学表达式解析)
- 2024-10-25 高德打车通用可编排订单状态机引擎设计
- 2024-10-25 NET RulesEngine(规则引擎)(规则引擎easy rule)
- 2024-10-25 开启灵活开发编码模式:规则引擎drools——LHS部分
- 2024-10-25 21-规则引擎内容介绍(规则引擎使用案例场景)
- 2024-10-25 Aviator规则引擎最佳实践(规则引擎教程)
- 2024-10-25 开源规则引擎LiteFlow:为低代码开发带来革命性的变革
- 2024-10-25 easyrules开发java程序(javaee应用开发)
你 发表评论:
欢迎- 最近发表
-
- pyinstaller打包python程序高级技巧
- 将python打包成exe的方式(python打包成exe的方法)
- Python打包:如何将 Flask 项目打包成exe程序
- py2exe实现python文件打包为.exe可执行程序(上篇)
- 如何将 Python 项目打包成 exe,另带卸载功能!
- Python打包成 exe,太大了该怎么解决?
- 可视化 Python 打包 exe,这个神器绝了!
- 案例详解pyinstaller将python程序打包为可执行文件exe
- Cocos 3.x 菜鸟一起玩:打包window程序
- 怎么把 Python + Flet 开发的程序,打包为 exe ?这个方法很简单!
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)