我目前正在設計一個使用DDD方法的Web應用程序。在區分實體和價值對象的同時,我遇到了一個這樣的模型元素,我無法決定將它放在Entity/VO類別下。應該評論歷史是一個實體,DDD
每個訂單將與1個且僅有1個管理評論列表的評論歷史記錄對象相關聯。現在,當編輯訂單時,用戶可以添加評論。這會附加到評論歷史。
評論對於持久性來說,歷史對象本身並不意味着什麼。我正在計劃使用nHibernate「組件」,所以只有註釋列表被寫到ORDER_COMMENTS表中。
訂單是一個實體。
應該評論歷史記錄(附加到訂單的各種用戶評論)是一個實體還是VO?
最後一個例子很有趣,但很有趣。所有你說的都是對的,這也正是埃文斯在他的書中所說的,但是如果我們查看歷史評論的持久性方面,我只會將註釋附加到ORDER_COMMENTS表中。我在Hibernate中使用什麼構造來處理Comment History對象,一個實體封裝註釋? – Gopal 2011-04-20 12:26:56
@GeorgeKT我個人不會打擾那麼多,只是讓流利的nhibernate自動映射,並有瘦的表CommentHistory。當涉及到持久性時,我很粗略。 :) – 2011-04-20 12:42:52
@GeorgeKT btw,類比是危險的(國家例子)。他們非常適合強調某些東西,但是如果你從中得出了強有力的結論,那就有點邪惡了。我們無法模擬現實世界 - 這是不可能的。當我們面對悖論時,我們會非常快地搞砸。非理性本質上是這個世界的一部分。我們只是針對特定問題建模解決方案。 – 2011-04-20 22:24:28