1

我目前正在尝试放在一起进行各种计算的模型结构,其公式将存储在模型中。轨道计算模型结构

目前,我有一个操作数模型,它通过多对多与操作模型连接。只要我总是可以做一个简单的计算(即没有中间步骤),这就可以正常工作。

如果我有一个问题是,如果我需要从别人的结果(例如)减去一个操作的结果。我知道我可以使用第二个模型来执行操作的计算,但是我会遇到同样的问题(即如果我需要对计算结果执行操作)。

因此,我需要什么本质上是一个办法窝的操作 - 即操作可能需要作为其操作数从操作模式,或者另一个操作的结果的正常操作。有没有办法让操作模型基本上像这样自引用?

谢谢!

回答

1

这实在是一个多轨道问题的对象建模问题 - 不会更详细地了解域模型我不知道我能帮助很大。

但正如我想想计算器以及如何我见过简单套操作/计算的编程工作,已经有一对夫妇的模式我已经看到了可能会有所帮助:

  1. 你有每个操作执行后存储结果的“当前结果”模型?我认为每个操作都可以在“当前结果”模型上执行,并且可以存储当前结果。

  2. 我也看到了一种情况,其中“注册”的想法被用作临时存储中间结果。例如,'store to register 1'将是一个单独的操作。如果您在'注册'对象开发了可以存储结果并从中获取结果(甚至可以执行操作并将结果留在注册表中),这可能会有所帮助。

这对您的域名有意义吗?

+0

注册选项似乎是最好的计划 - 谢谢! –

0

我不知道我是否理解你的问题,但在我看来,你希望在保存之前对属性执行操作。你可以使用super()来做到这一点。

def attribute=(val) 
    new_val = #any types of operations on val 
    super(val) 
end