請教banq大哥,領域模型的設計

sifeng618435發表於2007-08-20
讀過領域驅動設計這本書的
banq大哥也在這裡拿出了不少讓大家學習的關於DDD的文章
就領域模型而言,有些還是不太明白
把領域層分解成:實體+值物件+服務
實體:
實體是為了查詢和匹配物件的,所以要留下最關鍵的特徵,
保證其唯一性,以及和這些關鍵特徵相關的操作。

值物件:
值物件我就不大明白。
個物件代表了領域的某種描述性特徵,且沒有概念性的標識
值物件是不可變的,不要給它任何標識
這樣是不是說“這個值物件是系統級別的呢,和靜態變數的用途一樣”
那麼我有些迷惑的是實體和值物件的關係。我的理解是組合關係

服務:
1.與領域概念相關的操作行為、但不是實體和值物件中固有的部分。
2.介面根據領域模型中其他元素定義
3.操作是無狀態的。
書上是這樣說的,把應用服務介面抽象出來固然是好。

這樣的話,如果服務和這些模型不是同一個設計者設計的話會成為開發人員之間增加阻力。

那我還有一些不明白的地方,在其他的域模型設計過程中都會包括一些和模型
相關的狀態,這些狀態的改變就設計成為了模型的行為。
而在DDD的領域模型中,我就不太明白怎麼去設計這些有狀態的特徵,應該怎麼去設計
才能使領域模型體現更高的價值。banq大哥指點一下。
謝謝~



相關文章