首先需要知道的是Factory和Repository是程序設計模式,不是DDD特有的。
Factory工廠模式是為了簡化創建對象的方式,通過創建一個工廠接口,然后讓其子類決定實例化哪一個工廠類,這樣就不用每次new想要的類。
Factory一般使用在領域層創建Entity時。
Repository倉庫模式是為了持久化領域層創建的Entity(領域model),如將領域層創建的訂單對象保存到SQL server數據庫中。所以Repository不屬於領域層的,這樣設計的好處時,如果我們更改了數據存儲的方式,如SQL server數據庫改為了Oracle數據庫,只需要重寫Repository層的代碼,這就是為什么Repository層拆分出來的好處。