zoukankan      html  css  js  c++  java
  • NRules(0.9.0)规则引擎开发指南

    简介:规则引擎主要用于模型的规则控制,根据自定义的规则模型对业务模型进行赋值或执行业务模型中的方法等自定义编码。

    一、规则引擎的基本对象:

    1. 业务模型(包含字段属性,方法等的基于业务创建的模型)
    2. 规则模型(规则是基于哪个业务模型建立的)

    二、规则引擎基本流程:

    1.加载规则模型类库

    var repository = new RuleRepository();

    repository.Load(x =>x.From(typeof(PreferredCustomerDiscountRule).Assembly));

    2.将所有规则编译到工厂中,工厂创建会话对象

    //Compile rules

    var factory = repository.Compile();

     //Create a working session

     var session = factory.CreateSession();

    1. 实例化业务模型,并添加到规则中

     var customer = new Customer("John Doe") { IsPreferred = true };

                var customer2 = new Customer("zhibin hu") { IsPreferred = true };

                //var order1 = new Order(123456, customer, 2, 25.0) {  IsOpen= true };

                //var order2 = new Order(123457, customer, 1, 100.0) { IsOpen = true };

                //Insert facts into rules engine's memory

                session.Insert(customer);

                session.Insert(customer2);

    1. 执行规则

    session.Fire();

    三、规则模型的创建及对业务模型的影响:

    1.创建规则模型必须继承NRules.Fluent.Dsl.Rule

    2.规则的定义重写该方法:public abstract void Define();

    Define内调用when()定义规则执行条件

    如:

    When().Match<Customer>(() => customer);

    该规则定义了,当检测到添加了类型为Customer的业务模型时,则执行then中的行为

    Then().Do(x => Console.WriteLine("PreferredCustomerDiscountRule...name:"+customer.Name));

    then中可以为业务模型赋值,执行业务模型中的方法

    When()中的条件有很多,包括各种查询检索判断,还可以加载其他业务模型进行比较

  • 相关阅读:
    3、tensorflow变量运算,数学运算
    2、tensorflow 变量的初始化
    1、tensorflow 框架理解
    tensorflow 打印全部变量的一种方法
    0、tensorflow学习开始
    tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)
    SASRec 实践
    jupyterlab 增加新内核的方法ipykernel
    vivo 全球商城:架构演进之路
    jenkins安装 git免密ssh配置
  • 原文地址:https://www.cnblogs.com/DavidHuAtIT/p/12447492.html
Copyright © 2011-2022 走看看