Ruby 数据依赖性和一致性

Ruby 数据依赖性和一致性,ruby,dependencies,uml,dependency-management,data-consistency,Ruby,Dependencies,Uml,Dependency Management,Data Consistency,我正在为工程计算开发一个相当大的ruby脚本。该脚本创建了几个以分层方式互连的对象 例如,一个对象Inp包含一组模拟的输入参数。其他对象SimA、SimB、SimC用于实际执行模拟,它们中的每一个都可以生成一个或多个输出对象OutA、OutB、OutC,其中包含结果,并生成其他对象用于可视化或分析的实际文件等 当我第一次执行并完成所有模拟时,所有对象都将被完全定义,我将有一个系列或文件来代表用户的输出 现在假设用户需要更改Inp的一个属性。根据已修改的属性,必须重新运行某些模拟,并且某些对象Ou

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

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

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

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

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

从我一年前读到的这个问题来看,我认为Ruby Observable类可以用于此目的。每次父对象更改时,它都应该向其子对象发送一条消息,以便子对象可以更新其状态。 这是推荐的方法吗


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

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


这样做的工具通常被称为构建工具,因为这是一个在构建复杂软件系统时经常发生的问题,但它们并不局限于构建软件。更合适的术语是面向依赖的编程。示例包括make、ant或Ruby自己的rake。

我读了两遍你们的问题,但仍然不确定你们在问什么。