2
我最近與同事討論過,他堅持認爲在域驅動設計實體中不應該有一種不會修改其狀態的行爲。根據我迄今的經驗,我從來沒有聽說過這個限制。這是一個有效的DDD規則嗎?實體是否應該只包含修改狀態的行爲?
給予一定的上下文(簡化方案) - 在我們的領域,我們有計算機的實體,您可以在其中啓動進程,我們的集成層,實際上它委託給一個遠程物理計算機,並開始有一個過程。
所以,應該StartProcess
是Computer
實體的行爲?還是應該將其包含在域服務中,因爲它不直接影響Computer
實體的狀態? (它會在進程結束後間接修改狀態,並將數據同步回到我們的系統)。
對我實體是它的一個自然的地方,因爲它遵循的通用語言,但我想知道,如果有人有反對理由(或其他原因)。
我只想強調一點,雖然消息驅動的體系結構和CQRS適應這麼好DDD,他們不需要 – MikeSW 2013-04-30 08:42:32
真實,雖然使用域事件並不意味着CQRS/ES。我應該更清楚。 – eulerfx 2013-04-30 14:59:37