我之前问过一个类似的问题,但将其作为特定于语言的问题提出。我意识到我的问题在于建模级别。
我应该如何在对象模型中表示以下内容:
我有:
- 数据对象
- 参数对象
- 规则对象
规则指定如何修改它接收到的数据对象;它需要完全定义额外的参数。一个规则可以使用其他规则(或者在内部引用它们,或者在参数对象中被告知这样做)。
该规则不是用某人需要解析的某种自定义语言编写的;相反,它只包含应该执行的代码。这听起来像是设计之前的实现解决方案,但它实际上是需求之一(系统用户是希望能够编写自己的规则并将它们轻松添加到系统中的程序员)。
主要活动发生在数据对象、参数对象和规则对象相遇时;那时,数据对象被修改。
用户告诉系统他想要满足哪个规则、哪个参数和哪个数据对象,并期望取回修改后的数据对象。
更新:
数据对象示例:
所有数据对象都可以在逻辑上表示为 SQL 表。
数据对象 ID #7:一个 SQL 表
数据对象 ID #13:一个 SQL 表
参数对象示例:
所有参数对象都具有相同的布局:一个文本文件,其中每一行看起来像
<PARAMETER_NAME>
=<VALUE>
参数对象 ID #52:
规则 = '回归'
数据 ID = 7
Y = '成本'
X = '最大速度'
R = '成本估算错误'
参数对象#59:
规则 = '平均'
数据 ID = 13
COLUMNS = '最小速度','最大速度'
平均 = '平均速度'
规则对象示例:
规则对象“回归”:
执行线性回归;名为“Y”和“X”的参数指定用作因变量和自变量的列名;名为“R”的参数指定要添加到包含回归残差的表中的列名。
规则对象“平均”:
计算参数“COLUMNS”中列出的列中指定数字的平均值,并将结果存储在参数“AVERAGE”中指定的列中。