我一直認爲地址數據是一個值對象,因爲它是不可變的,它的相等性由所有字段中的相同數據定義。例如,付款和收貨地址中的帳單地址是訂單或履行的一部分。當有人改變她/他的地址時,需要一個新的地址數據。但是,我遇到的每個示例代碼/應用程序都有一個地址數據作爲實體,其數據庫表具有自己的ID。如果一個系統想要跟蹤所有業務活動/事件發生的所有地址,這將是有意義的。然而,我並沒有在這些示例代碼/應用程序中看到這樣的意圖。我在這方面錯過了什麼?爲什麼地址數據是一個實體?
0
A
回答
1
你不能一概而論。
例子是一回事,現實世界的問題是另一回事。你不能說一個解決方案適用於所有項目。
我給你舉個例子,我在一個保存聚合根的項目中。 從邏輯上和合法的子公司是其公司的延伸,例如。沃爾瑪的總部有稅號和所有的東西以及沒有稅號的子公司。從邏輯上講,爲了向政府提供資金或類似的東西,總部向其子公司發出請求。在這裏,沃爾瑪總部是一個綜合根,其子公司是融資程序中的一部分。 這是一個合乎邏輯的例子。
我所擁有的是一家子公司可以在沒有總部知識的情況下合法申請國家資助!因此,HQ不再是一個聚合根,而是一個子公司。這是非常不合邏輯的,但這些都是業務需求。
這一點與您的價值對象問題相同。儘管您可以使用Address作爲實體或值對象的示例,但是指定地址是什麼的業務需求並不是合乎邏輯的。
+0
感謝您分享您的體驗。根據您的說法,帳單地址和送貨地址的集合根目錄分別爲付款和運費。因此,它們應該是價值對象。 – vic
1
相關問題
- 1. 爲什麼地點是一個實體?
- 2. 爲什麼輸出是一個地址時,我想抓住一些地址
- 3. 什麼是Google Chrome地址欄字體?
- 4. 什麼是使用實體框架的好本地數據庫
- 5. 爲什麼<br>是一個元素,而不是實體?
- 6. 如果指針是一個地址,那麼什麼是引用?
- 7. 爲什麼不是一個新的實體堅持?
- 8. 什麼是IP地址':: 1'?
- 9. 什麼是標籤地址?
- 10. 什麼是MAC地址?什麼是PC的唯一ID?
- 11. 爲什麼fetchedObject計數整個實體 - 不是屬性?
- 12. 爲什麼這個JText panl給我一個記憶地址?
- 13. 實體框架的一個或多個實體模型爲一個數據庫?
- 14. 與兩個實體共享地址表
- 15. 爲什麼實體框架實體集的名稱是「it」?
- 16. 什麼是皇家郵政的PAF地址數據庫?
- 17. 使用TfL數據的iPhone應用的IP地址是什麼?
- 18. 什麼是存儲不同實體的「地址」的最佳模式?
- 19. 什麼是HTML實體' '?
- 20. 什麼是實體框架
- 21. 什麼是JPA實體?
- 22. 什麼是具體實現?
- 23. 爲什麼這個易失變量的地址總是在1?
- 24. 爲什麼EF返回一個代理類而不是實際的實體?
- 25. 爲什麼不同數據類型的地址不同[Python]?
- 26. 爲什麼實體框架?
- 27. 編輯實體在同一個Symfony2的多個地址枝杈
- 28. 爲什麼需要關係表從實體到同一實體
- 29. 爲什麼返回值是內存地址而不是Java中的實際值?
- 30. 爲什麼我們需要一個返回地址?
正如在Constantin GALBENU的回答中所暗示的那樣:數據庫ID不一定表明相應的域對象是一個「實體」。它純粹便於持久性:) –