2013-11-21 172 views
1

我有一些大的實體。實體具有房產「身份證」,「身份」等。 我有這個實體的知識庫。 我想改變一個實體的狀態。 我應該得到整個實體,更改屬性狀態並使用存儲庫中的保存方法,或者我應該使用Repository中的方法ChangeStatus(id,newStatus)?DDD存儲庫和實體

+0

前者。 Repository中的ChangeStatus(id,newStatus)使實體沒有意義。 – Hippoom

+0

我的意思是,在Repository中使用ChangeStatus(id,newStatus)我沒有從多個表中獲得整個Entity構造它,我只是更改一個Property。 – Backs

+0

但業務規則泄漏到持久層。 – Hippoom

回答

2

很可能您不需要域模型。您可以嘗試使用直接使用SQL更新數據庫的transaction script

當且僅當您需要聘請專家來了解業務時,您需要一個域模型。 否則,它只是昂貴的buzzwords driven development

順便說一句,如果你有大的實體類包含你在大多數操作中不需要的數據,那麼你知道你沒有正確定義context boundaries

界上下文的最佳定義是埃文斯的一個:

特定模型的分隔適用性。界限上下文讓團隊成員對什麼必須一致以及可以獨立開發哪些內容有明確和共同的理解。

那就是:你必須一分爲環境領域的專業知識,每個學期有明確的意義和一組有限的責任。如果你這樣做,你將獲得具有高凝聚力的小型和模塊

+0

很好的建議,謝謝。 – Backs