簡體   English   中英

在程序執行期間,如何告訴不同的類保存到同一文件夾?

[英]How to tell different classes to save to the same folder during execution of a program?

我有一個程序,其中典型的用例是創建一個會話,並在此會話期間執行一些順序的數值計算,其中每個計算的結果均作為參數傳遞給后續的計算。

要求每個中間數值結果必須保存到磁盤,以實現以下情況:

  1. 在會話開始時,將創建一個新的唯一命名的文件夾。
  2. 每個計算都按不同的類依次運行,並且在每個計算結束時,會將具有中間結果的文件保存在該文件夾中;
  3. 在會話結束時(和程序關閉之后),可以選擇從文件系統訪問該文件夾,並且所有文件都位於該文件系統中。

我的疑問是:

“如何告訴每個班級應該將其保存在哪里?”。

從結構上來說,我們可以在類中使用IO代碼,但是使用包含路徑的“全局”值,而不是將構造函數中的路徑傳遞給每個類,以及使用另一個更明智的解決方案卻令人困惑我。

將路徑傳遞到每個類的構造函數的過程就是所謂的依賴注入,通常被認為是最好的處理方式,至少在簡單的層次上。 理想的解決方案是將文件編寫器接口的實例注入每個類,這樣您就可以使用模擬編寫器測試每個類。 但是,實現起來比較復雜。 無論哪種方式,都在使用依賴項注入。

通過使用全局值,可以將代碼的所有部分耦合到該值。 應該避免這種耦合,因為它會導致易碎的代碼,這些代碼在進行更改時很容易中斷。 原因是,在大型系統中,可能很難確定對全局項目的所有依賴關系,從而難以理解更改全局項目的后果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM