1
1
编辑: 好吧,投反对票,所以这不是你想要的答案。 您可能会得到一个oo设计,但您需要发布一个xml片段或详细的规范。 |
2
1
您打算如何在内存中建模这些规则? 在内存中表示这些规则的一种方法是使用更高级的编程语言(例如python)。用执行调用C++对象的等效流将XML规则转换为Python代码。事实上,我过去这样做是为了实现一个规则系统。我使用JavaScript作为规则的序列化格式(在JS中比在XML中更容易定义规则,可读性也更高),也作为实际执行的代码(我使用SpiderMonkey来执行C++<->JS)。但是,你可以在任何具有C++绑定的流行脚本语言中进行。 |
3
1
很难从这样一个简短的描述中分辨出来,但我会让每个规则都成为一个管理自己的条件和动作的对象。这些规则将由工厂根据XML创建,并存储在某种字典中。 |
4
1
我会考虑两种设计,一种是一次性评估器(你的应用程序运行一次规则与数据,然后退出),在这种情况下,我会使用 XML SAX 具有处理数据的回调的解析器 另一个是DOM解析器,它使用一个由条件(检查)类和动作类组成的规则类在内存中缓存规则。 |
5
1
规则部分看起来有点像Schematron: http://www.schematron.com/elements.html 这是一种用XML和ISO标准编写的XML验证语言。 假设(正在验证的)源数据也是XML格式的,一种方法是将规则集转换为Schematron(这在XSLT中并不难),然后使用Schematron“基础结构”(即样式表)根据Schematron文件验证内容。 这将生成一个结果XML文件,显示哪些规则得到满足,哪些没有得到满足;然后,您可以执行与每个已验证规则关联的“操作”(转换?)。 |
6
1
|
7
0
用XML编写业务规则很麻烦。此外,C++还不是XML处理的好语言。 您的应用程序可以通过活动脚本公开其属性,并在VBScript/JScript中编写规则。通过这种方式,您可以在运行时评估规则。 如果定义规则需要XML,我将用Java、JavaScript或XSLT等高级语言分别编写处理器。在后台运行处理器,并在C++应用程序中获取返回值。 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |