Я разрабатываю довольно большой (для меня) скрипт ruby для инженерных расчетов. Сценарий создает несколько объектов, которые взаимосвязаны иерархически.Зависимость и согласованность данных
Например, один объект (Inp) содержит входные параметры для набора симуляций. Другие объекты (SimA, SimB, SimC) используются для фактического выполнения имитаций, и каждый из них может генерировать один или несколько выходных объектов (OutA, OutB, OutC), которые содержат результаты и создают фактические файлы, используемые для визуализации или анализа, посредством другие объекты и т. д.
В первый раз, когда я выполняю и завершаю все симуляции, все объекты будут полностью определены, и у меня будет серия или файлы, представляющие выходы для пользователя.
Теперь предположим, что пользователю необходимо изменить один из атрибутов Inp. В зависимости от того, какой атрибут был изменен, некоторые симуляции должны быть повторно запущены, а некоторый объект OutX будет отображаться недействительным, иначе согласованность будет потеряна, так как выходы больше не будут соответствовать входам.
Я хотел бы знать, есть ли шаблон дизайна, который облегчил бы этот процесс. Также мне было интересно, можно ли использовать какой-то граф для визуального представления различных зависимостей между объектами в ясной форме.
Из того, что я читал (этот вопрос год назад), я думаю, что для этой цели можно использовать класс Ruby Observable
. Каждый раз, когда родительский объект изменяется, он должен отправить сообщение своим дочерним элементам, чтобы они могли обновить свое состояние. Это рекомендуемый подход?
Надеюсь, что этот вопрос станет более понятным.
Я дважды читал вам вопрос, и я все еще не уверен, что вы просите. –