0

我正在为工程计算开发一个相当大的(对我来说)ruby脚本。该脚本创建了一些以分层方式互连的对象。数据依赖性和一致性

例如,一个对象(Inp)包含一组仿真的输入参数。其他对象(SimA,SimB,SimC)用于实际执行模拟,每个对象可以生成一个或多个包含结果的输出对象(OutA,OutB,OutC),并生成用于可视化或分析的实际文件其他物体等。

第一次执行并完成所有模拟时,所有对象都将被完全定义,并且我将有一系列或多个文件来表示用户的输出。

现在假设用户需要更改Inp的其中一个属性。根据哪些属性被修改,一些模拟将不得不重新运行,并且一些对象OutX将被渲染为无效,否则由于输出不再对应于输入,一致性将会丢失。

我想知道是否有一个设计模式可以促进这个过程。另外我想知道某种图形是否可以用来清晰地表示对象之间的各种依赖关系。

从我一直在读(这个问题是一岁),我认为Ruby的Observable类可用于这一目的。每当父对象发生变化时,它应该向其子女发送消息,以便他们可以更新其状态。 这是推荐的方法吗?

我希望这可以让问题更清楚。

+0

我给你读过两次问题,我仍然不确定你在问什么。 – 2015-10-11 08:10:44

回答

0

我不知道我完全理解你的问题,但阶段的问题,这依赖于以前的阶段,该阶段又取决于从自己依靠结果前阶段的前阶段成果的结果,和每一个这些阶段可能会失败或花费任意时间,与编程本身一样古老,并且已经解决了很多次。

工具,这样做通常被称为“构建工具”,因为这是构建复杂的软件系统时经常出现问题,但他们绝不限于构建软件。更合适的术语是“依赖性编程”。示例包括make,ant或Ruby自己的rake