2013-01-09 70 views
3

我是DDD的新手,希望澄清一些疑問。任何幫助表示讚賞。DDD中的實體課程和實用課程的位置

  1. 在DDD模型中,組件參考層次自頂向下,這意味着模型可以引用基礎架構,不應該是其他方式。現在,如果我們在Model assembly中聲明所有類,那麼在這種情況下,Infrastructure類將不得不引用Model Assembly來獲取數據訪問層(DAL)中的具體存儲庫實現的類信息。另外,模型組件將不得不引用基礎結構組件來訪問DAL層。我對此感到困惑!什麼應該是正確的方法?

  2. 我們是否應該在模型層或基礎架構DAL層中具有Repository和UnitOfWork接口,如同樣在模型層中具有接口但在基礎架構層中實際的DAL實現?

  3. 如果我們需要包含一些通用實用函數或類的其他程序集(例如在Enterprise Service Bus體系結構中進行通信的自定義CommandMessage類等),那麼我們應該在哪裏放置所有這些東西以及哪些應該是首選名稱空間(例如CompanyName.Model.Common)?

回答

2
  1. 模型裝配不應該是指基礎設施大會。反之亦然。模型組件只是聲明所需的接口。您應該從基礎結構彙編中引用您的模型部件。並實現這些接口。可能會有許多不同的接口實現,這是模型所需要的。之後你通過依賴注入來提供接口實現。
  2. 如上所述,應在模型組件中聲明存儲庫和工作單元。
  3. 在企業服務總線架構內進行通信在我看來,就像基礎架構任務一樣。我認爲這不是模型的一部分。