Java 创建规则引擎的最佳设计模式
假设我必须设计一个规则引擎,其中根据静态配置规则,责任链在运行时发生变化。实现这个问题的最佳设计模式是什么 例如,g。根据某些配置,流中的一组事件可以(1)过滤,(2)划分为子集(3)修改 对于每个流,客户可以选择3个流中的所有流,或者三个流中的一些流,或者三个流中的任何一个流 因此,我的程序集管道应该在运行时根据每个流的配置进行配置Java 创建规则引擎的最佳设计模式,java,design-patterns,rule-engine,stream-processing,Java,Design Patterns,Rule Engine,Stream Processing,假设我必须设计一个规则引擎,其中根据静态配置规则,责任链在运行时发生变化。实现这个问题的最佳设计模式是什么 例如,g。根据某些配置,流中的一组事件可以(1)过滤,(2)划分为子集(3)修改 对于每个流,客户可以选择3个流中的所有流,或者三个流中的一些流,或者三个流中的任何一个流 因此,我的程序集管道应该在运行时根据每个流的配置进行配置 实现这一目标的最佳设计模式是什么?我不确定我是否理解您的用例,但有些开源项目似乎正是您所需要的 首先,您有,它允许您配置路由(静态和/或动态)。通过这种方式,您可
实现这一目标的最佳设计模式是什么?我不确定我是否理解您的用例,但有些开源项目似乎正是您所需要的 首先,您有,它允许您配置路由(静态和/或动态)。通过这种方式,您可以根据配置的路由通过管道的每个组件路由事件流 作为Camel的替代或补充,和是两个进行复杂事件处理(即事件过滤、关联、分离等)的开源项目。它们都支持动态添加/删除规则/查询。因此,您不必更改路由,例如,您可以将一条路由设置为Drools/Esper会话,而只需根据配置添加/删除规则/查询,即可完成所需操作
在我看来,您不需要创建“规则引擎”。你可以使用现有的东西。你似乎陷入了一个陷阱,认为一切都是由设计模式解决的。告诉我们您提出了什么设计……我正在考虑使用一个规则引擎对象,它将所有流传递给队列。链中的第一个是过滤,第二个是修改,第三个是分区。如果没有为流配置特定的操作,它只会将流传递到管道中的下一个。这意味着我总是静态地为所有3个操作配置规则引擎。想知道是否有一种方法可以为流配置装配线,并根据需要为该特定操作动态地拾取和选择操作stream@MitchWheat:这不是陷阱,它本身就是一种设计模式:设计模式。