假設我有一個聚合,Ticket
。 A Ticket
將具有一個分配的Department
和一個或多個分配的Employee
。哪些對象負責維護聚合之間的引用?
當實例化一個
Ticket
,應該在TicketFactory
負責確保一個Ticket
與有效/存在Department
和Employee
產生的?同樣,退役當
Department
或Employee
,什麼是負責確保新Department
或Employee
被分配到Ticket
,以維持其不變?負責退役的域中是否有服務?或者是否應該採用最終一致性或某種形式的事件監聽?
我不明白爲什麼一個工廠不能確保一個聚合包含有效的引用(或甚至未保證的代理)。你能解釋一下嗎?第二點對我有意義;我已經可以看到多個可能的處理程序,用於退役員工(向其他員工發送電子郵件,將工單移動到隊列池,更新目錄)。 – tuespetre 2013-02-22 05:14:15
另外,感謝您的鏈接 - 我已閱讀了一些文章從埃文斯埃文斯的書本壘板開始。謝謝你提醒他們,第二個特別提醒一些事情,儘管我不確定我是否同意使用全局id而不是對象引用(即使只是一個虛擬代理)。我將很快需要閱讀Evans '再次預訂,看看我是否拿起別的東西。 – tuespetre 2013-02-22 05:14:40
爲了讓工廠能夠驗證其他聚合的存在,它需要訪問其存儲庫 - 另一個依賴。由於應用程序服務已經引用了存儲庫或其他服務,它們應該負責提供適當的ID。 – eulerfx 2013-02-22 17:47:11