創建過程中須考慮一些重要細節, 否則所創建的聚合將處於不正確的狀態, 使用適當的工廠方法可以確保這一點, 而客戶端只需輸入基本的參數(通常是值對象), 另外, 工廠能更好地表達出通用語言, 使團隊成員更容易溝通, 這是建構函式不能達到的。

聚合根中的工廠

工廠方法能幫助我們有效表達限界上下文中的通用語言,減清客戶端在創建新聚合實例時的負担,並確保所創建的實例處於正確的狀態

但工廠會帶來性能上的影響,在創建聚合實例時,我們必須先從持久化存儲中取得參數的實例,雖然與工廠帶來的好處相比之下,這點性能的損失是值得,但隨著該限界上下文吞吐量的增加,團隊成員需仔細衡量可能帶來的後果。

領域服務中的工廠

作者這裡關注點主要集中在對防腐層發布語言開放主機服務的集成上。

可使用工廠在不同上下文進行交互時,擔任配適器(Adapter)將其他上下文對象翻譯成自己上下文中的協作對象。通過使用基於領域服務的工廠,我們可以將兩個限界上下文的生命周期和概念術語分離

小結

1. 使用工廠來創建不同的聚合實例, 並保證聚合狀態的正確性。

2. 將領域服務設計成工廠, 其中包括與其他限界上下文的交互,以及將外部對象翻譯成本地對象。

04-03 00:39