我正在嘗試使用 DDD 和六邊形架構將整體式應用程式重寫到模組化整體式應用程式上。首先嘗試提取三個模組(聚合):「Shared」、「User」和「Article」。
據我正確理解,「使用者」和「文章」之間不應創建任何依賴關係。但是,它們都可以使用“共享”模組中的內容。
所以事情是這樣的...
「文章」模組具有 Article
實體,與 User
實體相關。從 DDD 的角度來看,它是特定文章的創建者。將會有更多類似的模組與 User
實體作為資源的作者或擁有者相關。
應該如何實作?是否應該將其移至“共享”?不幸的是,找不到任何特定的資源。 Github 主要包含具有單一聚合的項目,並且沒有諸如 User
實體之類的項目。
我一直在尋找解決此類問題的不同方法。你可以創建一個共享聚合,沒有人可以說這是錯誤的。但是,我認為最好的解決方案是您建立Person (或People)聚合,其中您可以有一個與ArticleEntity 相關的PersonEntity (或AuthorEntity),聚合之間的關係沒有問題,但我建議您嘗試僅在聚合之間建立關係根。
這是 Eric Evans 藍皮書的樣本
請注意,Voyage 是 Aggregate Voyage 中的 AggregateRoot,它與 Location 聚合的 AggregateRoot Location 存在關係。