我正在为工程计算开发一个相当大的(对我而言)ruby 脚本。该脚本创建了一些以分层方式互连的对象。
例如,一个对象 (Inp) 包含一组模拟的输入参数。其他对象(SimA、SimB、SimC)用于实际执行模拟,它们中的每一个都可以生成一个或多个输出对象(OutA、OutB、OutC),其中包含结果并通过以下方式生成用于可视化或分析的实际文件其他物体等等。
第一次执行并完成所有模拟时,所有对象都将被完全定义,并且我将拥有代表用户输出的系列或文件。
现在假设用户需要更改 Inp 的属性之一。根据已修改的属性,必须重新运行一些模拟,并且某些对象 OutX 将被渲染为无效,否则一致性将丢失,因为输出将不再对应于输入。
我想知道是否有一种设计模式可以促进这个过程。另外我想知道是否可以使用某种图形以清晰的方式直观地表示对象之间的各种依赖关系。
根据我一直在阅读的内容(这个问题已经存在一年了),我认为 RubyObservable
类可以用于此目的。每次父对象发生变化时,它都应该向其子对象发送一条消息,以便它们可以更新其状态。这是推荐的方法吗?
我希望这能让问题更清楚一些。