2011-05-24 142 views
2

如果我嚴格遵循DDD,是不是IsDirty和IsNew的概念作爲實體的屬性違反實體應該只處理它自己的邏輯的規則。 IsDirty/IsNew是用於持久性的東西。即使如此,我也看到有人直接把它放在實體或實體基類中。這不是不是嗎?有什麼其他方法可以獲得相同的功能並將其移出實體。像一個對象狀態跟蹤器?我試圖做到這一點,所以我可以做一些像order.AddLine(),然後調用orderRepository.Save(order)。我希望在不添加邏輯的情況下做到這一點,因爲每個setter都會說它很髒。域驅動設計isDirty,isNew

回答

0

你是正確的,實施isNew和isDirty不是一個可以接受的嚴格遵守DDD的做法。通常,您希望使用Unit of Work pattern來跟蹤需要傳遞到持久性存儲的域層更改。

+0

謝謝。這不使用ORM的任何示例? – 2011-06-09 00:07:33

+0

http://www.codeinsanity.com/2008/09/unit-of-work-pattern.html – 2011-06-09 00:59:36