1.规则里面很多的判据不是直接就具备的,需要一些整理过程,那么这些整理过程到底是在Java类里面做还是在Drools规则里面做?举例子说:
规则如下:
如果用户购买的商品中有两个以上的A产品和一个B产品就打85折。
如果用户购买的商品中有两个以上的B产品,就打8折。
在实际开发中,我们会把用户准备购买的产品都放在一个列表中。
如果要应用规则引擎,直接以产品列表为“事实”是最理想的,但是以直接以产品列表为“事实”就需要在规则中插入Java代码,用来整理出产品A和产品B的数量。这样一来,整理产品列表的Java代码就脱离了Java的运行环境,调试起来比较困难。至于更复杂的一些业务规则,用Rule去实现岂不是很难阅读和理解?
如果我们不直接以产品列表为"事实",而已采购的产品A和B的数量为事实,那么在调用规则之前,就要在Java中整理产品列表,求出产品A和B的数量,然后将其作为“事实”调用规则。此种方案的缺点就是不够灵活。一旦规则变化了,需要纳入产品C的数量来作为打折的依据,那么既要修改Java中整理产品列表的代码,又要修改规则文件。这也是我们不愿意看到的场面!
2.所谓的“业务规则”和“业务逻辑”区别到底在哪?是不是所有业务逻辑都可以看做是“业务规则”?如果是这样,那么复杂的业务逻辑或者说复杂的业务规则用规则文件去编写是否合适?如何把握将哪些业务规则用规则引擎去实现的度?
3. 如果要推入工作内存的事实量较大,或者需要用到的规则量较大,规则引擎的性能可否满足要求呢?
4. “部门经理(角色)能够批准2天以内的请假,总经理(角色)可以批准2天以上的请假”,这样的规则算不算业务规则?这样的规则中,什么是事实,什么是结论?在工作流的场景下,我期望的是给出申请的请假天数,然后根据业务规则找出可以批准的角色,然后将工作任务发给该角色。那么规则引擎是否具有这样类似的查询功能呢?或者我该如何去实现?
建议:规则是可以动态加载的,在线上环境下更新,不需要停应用的,建议尽量放在规则里面,还有现在都有eclipse插件支持调试的,对于简单的计算应该还是方便的。如果是很复杂的业务逻辑,或者要组装一个很复杂的对象,肯定要放在java处理比较好。
分享到:
相关推荐
压缩包中的文件名称列表提供了关于项目的一些基本信息: 1. LICENSE-ASL-2.0.txt:这通常表示项目遵循Apache Software License 2.0,这是一个开源许可协议,允许用户自由使用、修改和分发软件,但可能需要保留原始...
Drools是一款强大的Java规则引擎,它为业务规则管理提供了高效、灵活且可扩展的解决方案。作为基于模型的决策自动化工具,Drools允许开发者将复杂的业务逻辑编码为一系列易于理解和维护的规则,这些规则可以独立于...
Drools是一款强大的业务规则管理系统(BRMS),它基于Java平台,主要用于实现复杂业务规则的管理和执行。Drools7.25是该系统的一个重要版本,提供了许多新特性和性能改进,使得开发者能够更高效地处理和执行业务规则...
**规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。它允许开发者将业务逻辑以规则的形式编写,使得业务规则可以独立于应用程序代码进行...
然后,需要向Tomcat的lib目录添加一些必需的jar包,这些可以从提供的链接或Drools的发布包中获取。 3. **创建配置文件**: - **btm-config.properties**:在Tomcat的conf目录下创建此文件,配置Bitronix ...
Drools开发最全中文版技术指南。 Drools开发最全中文版技术指南,介绍了常见的drools如何进行开发,注意是:中文版中文版中文版! drools 中文文档 规则引擎 drools6 drools7 Java
尽管由于文件大小限制,可能缺少了一些额外的包,但对于初学者或进行基础学习来说,这些内容已经足够了。 **Drools核心组件** 1. **Drools Engine**: Drools引擎是整个框架的核心,它负责执行规则。规则是由一系列...
《 Drools 深度探索:实例代码解析与实践指南》 Drools,作为一款强大的规则引擎,广泛应用于业务逻辑复杂、决策流程多变的IT系统中。它基于Java平台,采用领域特定语言(DSL)来编写业务规则,使得业务人员也能...
在这个“Drools workbench文件及DEMO项目代码”中,我们可以期待找到关于如何使用Drools Workbench进行规则工程实践的示例。 首先,"mydroolsWeb"可能是一个包含Drools工作台Web应用的项目。这个项目可能包含了前端...
Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...
标题中的"drools-demo.zip"表明这是一个关于Drools规则引擎的示例项目,而描述中提到"规则引擎简单使用案例Drools+Springboot2.X",这说明这个压缩包包含了一个使用Drools规则引擎与Spring Boot 2.x集成的简单应用。...
### Drools 5.3 官方手册知识点总结 #### 一、Apache Camel 集成 ##### 1.1 Camel Camel 提供了一个轻量级的消息总线框架,用于将信息输入到 Drools 中并从中输出。为了简化集成过程,Drools 引入了两个关键组件...
Drools是一个强大的规则引擎,它允许开发者使用规则语言(如DRL)来编写业务规则,然后在运行时执行这些规则。在这个"Drools实例"中,包含的两个示例项目,GOLF和EmployTest,将帮助我们深入理解Drools的工作原理和...
SpringBoot和Drools的整合应用为业务规则的管理和执行提供了强大的灵活性。SpringBoot作为一个轻量级的Java开发框架,简化了Spring应用的初始化和配置,使得开发过程更加高效。而Drools则是一个强大的规则引擎,它...
**Drools Flow 分析报告** **第一章 Drools Flow 简介** Drools Flow 是 Drools 项目的一部分,它提供了一套完整的业务流程管理(BPM)和工作流解决方案。Drools 是一个开源的规则引擎,主要用于决策管理和业务...
`Drools5规则引擎开发教程.pdf`提供了关于如何使用Drools 5.x版本进行开发的详细指导。可能涵盖了规则的创建、规则的测试、知识会话的管理等内容。 6. **drools-docs.pdf** 这可能是Drools的官方文档集合,包含了...
Drools提供了一些策略来帮助开发者优化规则的执行效率,比如规则分组、优化规则条件和利用规则索引等。此外,了解最佳实践可以帮助开发者在项目中更好地运用Drools,包括代码组织、规则编写标准和项目结构等。 总结...
Drools 规则引擎详解 Drools 规则引擎是基于 Java 的开源规则引擎,由 JBoss 发布。作为一个业务规则管理系统(BRMS),Drools 提供了一个基于规则的系统,用于定义、执行和管理业务规则。Drools 的主要功能是将...
drools动态生成规则文件是基于Java的业务规则管理系统,它允许开发者在运行时创建、修改和执行业务规则。 Drools是Red Hat JBoss BRMS(Business Rules Management System)的一部分,它提供了一种强大的规则引擎,...