根據DDD(Blue book,Evans),工廠有責任在有效狀態下創建一個聚合根。這是否意味着它應該能夠創建技術ID(mongoDB世界中的objectId)以及域ID?DDD和MongoDB:可以讓Mongo創建ObjectID嗎?
一方面,這看起來像一個技術細節,讓Mongo處理ID的創建似乎是可以的。
另一方面,通過id啓用查詢(通過在DDD存儲庫中使用getById
)將技術ID公開給域,這反過來將使其成爲Factory的職責來創建它。
也許我無法理解技術標識與DomainId的不同使用情況/重疊等問題,或者我過於熱衷,但無論如何,我都會很感激您的意見。
簡而言之: 在DDD中:工廠是否應該能夠創建技術ID以及域ID?
可能的實現:高/低(How to set the hilo sequence starting value in MongoDB Norm?)
編輯:雖然高/低的方式曝光工廠的持久層,這恐怕只有庫應該知道。嗯
感謝
輕微不完全相關的評論; MongoDB實際上並不創建這些ID,客戶端(驅動程序)確實(除了upsert操作)。 – 2012-08-03 16:06:49