2011-08-31 117 views
2

我有一個實體工廠需要訪問文件系統來構建對象。我創建了一個IFileSystem接口,該接口正在注入工廠。實體和基礎設施服務

使用基礎架構服務的正確方法是?如果是這樣的話,建議爲實體本身做同樣的事情,因爲實體上的重要方法也需要操縱文件系統。

回答

1

很難回答這個問題,而不知道你在做什麼域名。它似乎不正確,因爲這將類似於注入類似IDatabase的東西。文件系統和數據庫是持久性技術,領域邏輯應該儘可能與持久性無關。因此,如果您的Ubiquitous Language不包含「文件系統」的概念,您可能需要重新評估此設計。您可以簡單地以更多以域爲中心的術語來重申您的意圖,如ICustomerConstructionInfoProvider。然後注入這個接口實現類似於注入庫實現的方式。

+0

那麼這個領域是一個非常簡單的領域。我創建了一個小型應用程序來備份文件。 DDD也許是矯枉過正,但我​​試圖將其用作學習過程。所以你建議我應該考慮類似於存儲庫的文件系統?並擁有某種表示我感興趣的文件屬性的實體。並且在其中具有用於操作文件系統的CRUD方法。 –

+0

不,我認爲在你的情況下文件系統不是基礎設施。文件,文件夾等是你的'域'的一部分。也許你需要直接在標準的.NET或Java文件系統類的基礎上實現你自己的類,比如BackupSet和BackupJob。 – Dmitry