儲存庫
作者:Edward Hieatt 和 Rob Mee
透過類似集合的介面存取網域物件,在網域和資料對應層之間進行調解。
有關完整說明,請參閱 EAA 的 P 第 322 頁
具有複雜網域模型的系統通常會受益於資料對應器 (165) 提供的層,它會將網域物件與資料庫存取程式碼的詳細資料隔離。在這種系統中,在對應層上建立另一層抽象層,並將查詢建構程式碼集中在該層,會是有價值的。當有大量的網域類別或繁重的查詢時,這一點變得更為重要。特別是在這些情況下,新增此層有助於將重複的查詢邏輯減至最低。
儲存庫在網域和資料對應層之間進行調解,作用類似於記憶體中的網域物件集合。用戶端物件會以宣告方式建構查詢規格,並提交給儲存庫以取得滿足。物件可以新增到儲存庫,也可以從儲存庫中移除,就像從簡單的物件集合中新增或移除物件一樣,而儲存庫封裝的對應程式碼會在幕後執行適當的作業。從概念上來說,儲存庫會封裝儲存在資料儲存庫中的物件集合,以及對這些物件執行的作業,提供更面向物件的持久性層檢視。儲存庫也支援達成網域和資料對應層之間的明確分離和單向依賴的目標。
您也可以在 領域驅動設計 中找到此模式的良好撰寫。