2013-09-25 92 views

回答

0

您可以將它們視爲價值對象,但您不必以DDD方式考慮所有事情。

根據Martin Fowler的定義:

當我們使用領域模型中,我們使用它,因爲它包含了複雜的 域邏輯。將此域邏輯分類爲:

驗證:檢查輸入是否有意義並且對象是否正確 適合進一步操作。 後果:發起一些行動,這將改變世界的狀態
推導:搞清楚一些 信息基礎上的信息,我們已經有

的ValueObject s爲擅長驗證並推導。

另一方面,語言表通常用於解決國際化問題(ui/query conern)。一般來說,這裏沒有領域邏輯。這種特徵很容易在簡單的CRUD風格中實現,因此更好。在DDD中考慮它們會添加很多約束,例如只有聚合可以由存儲庫返回,或者只能通過聚合來修改本地實體。例如,用戶編輯產品,添加英文說明和德語說明。人們可以將產品建模爲一個聚合和描述作爲價值對象,但是這並沒有增加太多價值,並且令人討厭(現在一個產品不能由一個英文編輯器和一個deutsch編輯器同時修改聚合)進行編輯。

但是如果產品聚合中存在一些真正的域驗證和派生會怎樣?如庫存和定價。這就是有限背景下的場景。可以同時在DDD中建模庫存/定價有界上下文和在CURD中建模的產品描述上下文。

相關問題