什么是不断计算对象之间级联关系的最佳方法(算法)?
-
09-10-2019 - |
题
例如A+B = C C+D = E E+F = G,因为对每个节点进行了更改,相关节点被重新计算。下图是我要做的事情的简单示例。
进一步澄清每个对象的结构是相同的。投入将是价格,因为每个价格变化都会对下游的价格产生级联影响。因此,在上面的示例中,A+B = C将变为5+6 = 11。等等
更改会不断发生(可能是每一秒),因为每个值都会更改,因此需要通知(事件发射)。
其他提示
最简单的方法将是基于事件的方法。每个节点都有一个“ on Changed”事件,并且任何使用该节点的东西都可以订阅该事件。节点自行更新后,然后提出了该事件,并让其他需要知道的任何东西。
如果您的依赖关系更为复杂,那么您可能需要拥有其他东西来管理更新以优化事物。例如,如果a效应b和c和c还效应b(例如b = a+c和c = a+1),那么一种简单的方法可能会更新a,然后b,然后c再次b。这有效,但显然是一个MROE更新。优化更新的确切方法将取决于您的依赖树的复杂程度。
不隶属于 StackOverflow