【问题标题】:Rules engine vs rich domain model规则引擎与富域模型
【发布时间】:2017-11-02 05:34:05
【问题描述】:

我正在研究 NRules.Net 来实施我的定价引擎。经过一些测试,我真的不明白使用 .net 规则引擎与使用富域模型的好处...

  • 规则仍然是普通的 CS 类(没有什么动态的)
  • 我必须处理一个黑盒(规则引擎),它让我无法理解发生了什么

最后,我为什么要选择 .net 规则引擎?我有什么遗漏吗?

谢谢 赛博

【问题讨论】:

  • 容易理解吗?你的巴士因素是什么?您的用户是否想要customize the rules 或有关于他们的文档?调试方便吗?
  • 只有开发者才能根据我们的营销团队提供的输入来自定义规则。在这个阶段很容易理解/调试。
  • 我会避免使用外部引擎,除非它带来真正的好处,例如将规则与复杂的布尔逻辑(&&、OR、XOR 等)链接在一起。如果规则只是普通类,那么使用的意义何在这样一个计算它们的黑匣子?我在我们的项目 (PHP) 中实现了一个简单的规则引擎,其中每个规则都是一个类并包含其逻辑。使用复杂规则引擎的唯一一点(对我来说)是当您使用非常参数化的工作流解决方案(即动态工作流构建器)时

标签: c# .net domain-driven-design rule-engine


【解决方案1】:

规则引擎允许您将规则作为其自身的概念进行推理,并为您提供一种复杂的语言来处理规则。

您可以动态组合规则、分类和操作具有不同优先级的规则列表、管理冲突规则、使用业务人员可能理解的便捷 DSL 表达它们、创建转换以使对象符合规则等。

如果不抽象出规则是什么,就无法以有意识、一致的方式完成所有这些工作。

并非所有领域都需要它,但如果在与您的领域专家讨论时经常出现该一般概念,那么规则引擎可能值得一看。

【讨论】:

    猜你喜欢
    • 2014-06-12
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2017-11-10
    相关资源
    最近更新 更多