0

我正在爲工程計算開發一個相當大的(對我來說)ruby腳本。該腳本創建了一些以分層方式互連的對象。數據依賴性和一致性

例如,一個對象(Inp)包含一組仿真的輸入參數。其他對象(SimA,SimB,SimC)用於實際執行模擬,每個對象可以生成一個或多個包含結果的輸出對象(OutA,OutB,OutC),並生成用於可視化或分析的實際文件其他物體等。

第一次執行並完成所有模擬時,所有對象都將被完全定義,並且我將有一系列或多個文件來表示用戶的輸出。

現在假設用戶需要更改Inp的其中一個屬性。根據哪些屬性被修改,一些模擬將不得不重新運行,並且一些對象OutX將被渲染爲無效,否則由於輸出不再對應於輸入,一致性將會丟失。

我想知道是否有一個設計模式可以促進這個過程。另外我想知道某種圖形是否可以用來清晰地表示對象之間的各種依賴關係。

從我一直在讀(這個問題是一歲),我認爲Ruby的Observable類可用於這一目的。每當父對象發生變化時,它應該向其子女發送消息,以便他們可以更新其狀態。 這是推薦的方法嗎?

我希望這可以讓問題更清楚。

+0

我給你讀過兩次問題,我仍然不確定你在問什麼。 – 2015-10-11 08:10:44

回答

0

我不知道我完全理解你的問題,但階段的問題,這依賴於以前的階段,該階段又取決於從自己依靠結果前階段的前階段成果的結果,和每一個這些階段可能會失敗或花費任意時間,與編程本身一樣古老,並且已經解決了很多次。

工具,這樣做通常被稱爲「構建工具」,因爲這是構建複雜的軟件系統時經常出現問題,但他們絕不限於構建軟件。更合適的術語是「依賴性編程」。示例包括make,ant或Ruby自己的rake