我正在为工程计算开发一个非常大的(对我而言)ruby脚本。该脚本创建了一些以分层方式互连的对象。
例如,一个对象(Inp)包含一组模拟的输入参数。其他对象(SimA,SimB,SimC)用于实际执行模拟,并且每个对象可以生成一个或多个输出对象(OutA,OutB,OutC),其包含结果并生成用于可视化或分析的实际文件。其他对象等。
我第一次执行并完成所有模拟时,所有对象都将被完全定义,我将有一系列或文件代表用户的输出。
现在假设用户需要更改Inp的其中一个属性。根据已修改的属性,必须重新运行某些模拟,并且某些对象OutX将变为无效,否则一致性将会丢失,因为输出将不再对应于输入。
我想知道是否有一种设计模式可以促进这一过程。此外,我想知道是否可以使用某种图形以清晰的方式直观地表示对象之间的各种依赖关系。
从我一直在阅读(这个问题已有一年)我认为Ruby Observable
类可以用于此目的。每次父对象更改时,它都应该向其子项发送一条消息,以便它们可以更新其状态。
这是推荐的方法吗?
我希望这会使问题更加清晰。
答案 0 :(得分:0)
我不确定我是否完全理解你的问题,但是阶段问题取决于先前阶段的结果,而这些阶段又取决于前几个阶段的结果,这些阶段本身取决于前几个阶段的结果,以及每个阶段的结果阶段可能失败或花费任意时间,与编程本身一样古老,已经解决了很多次。
执行此操作的工具通常称为“构建工具”,因为这是在构建复杂软件系统时经常出现的问题,但它们绝不仅限于构建软件。更合适的术语是“面向依赖性的编程”。示例包括make
,ant
或Ruby自己的rake
。