1

我正在为工程计算开发一个相当大的(对我而言)ruby 脚本。该脚本创建了一些以分层方式互连的对象。

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

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

现在假设用户需要更改 Inp 的属性之一。根据已修改的属性,必须重新运行一些模拟,并且某些对象 OutX 将被渲染为无效,否则一致性将丢失,因为输出将不再对应于输入。

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

根据我一直在阅读的内容(这个问题已经存在一年了),我认为 RubyObservable类可以用于此目的。每次父对象发生变化时,它都应该向其子对象发送一条消息,以便它们可以更新其状态。这是推荐的方法吗?

我希望这能让问题更清楚一些。

4

1 回答 1

0

我不确定我是否完全理解您的问题,但是阶段的问题取决于前一阶段的结果,而前一阶段的结果又取决于前一阶段的结果,而前一阶段的结果本身又取决于前一阶段的结果,并且这些阶段中的每一个都可能失败或花费任意时间,与编程本身一样古老,并且已经解决了很多次。

执行此操作的工具通常称为“构建工具”,因为这是构建复杂软件系统时经常出现的问题,但它们绝不限于构建软件。一个更合适的术语是“面向依赖的编程”。示例包括make,ant或 Ruby 自己的rake.

于 2014-08-30T16:11:38.857 回答