在域層或數據訪問層?我應該在哪裏進行轉換:域對象<-> DTO?
3
A
回答
5
DTOs的主要動機是呈現爲另一層(通常是表示層)量身定製的界面。例如,數據輸入屏幕可能需要來自用戶對象的一些數據以及來自訂單的某些位等。在這種情況下,DTO的域應發生在表示層調用的層,即典型地一個「服務」層。
這裏有像Dozer這樣的庫,可以自動執行域模型和DTO之間轉換的繁瑣工作。
DTO的目的是將數據(而非業務邏輯)從更豐富的領域模型對象中抽象出來 - 因此,DTO應儘早轉換回領域對象(在服務層)的應用程序層可能與更豐富的域對象(數據和業務邏輯)一起工作
2
我不是DTO的粉絲,但我說不要在數據層中這樣做。數據層處理模型對象及其持久性。爲什麼要將DTO加入其他層中?我會將它們映射到其他地方,可能位於服務和用戶界面之間,就在它們跨越創建位置和使用位置之間的邊界。
相關問題
- 1. 我應該在哪裏將我的實體轉換爲DTO?
- 2. 我應該將Entity(Persistent)對象轉換爲DTO對象嗎?
- 3. 如何將DTO轉換爲域對象
- 4. 應該在哪裏進行驗證:端點或對象?
- 5. 類型<>不存在。我應該在哪裏定義它?
- 6. 我應該在哪裏使用標籤<menu>,以及標籤<nav>?
- 7. 使用<ui:composition>模板時,我應該在哪裏聲明<f:metadata>?
- 8. 我在哪裏應該添加<支持屏> Android中tiapp.xml
- 9. 我應該在哪裏包括<string>?
- 10. 應該在哪裏聲明類對象?
- 11. 如何以及應該在哪裏消費域對象方法?
- 12. IQueryable <Entity>在LINQ與嵌套對象IQueryable <DTO>
- 13. JMapper子集合<Entity>轉換爲Collection <Dto>
- 14. 我應該在哪裏使用模板,我應該在哪裏編程生成視圖對象?
- 15. 如何正確地將DataReader轉換爲DTO/List <DTO>?
- 16. 在哪裏設置AutoMapper將asmx代理對象轉換爲域對象?
- 17. 我應該使用哪種XSLT處理器進行Java轉換?
- 18. 在主題文件</body>應該在哪裏?
- 19. 我應該使用<section>標籤裏面<aside>?
- 20. 我應該在哪裏處理由表單管理的對象?
- 21. 我應該在哪裏放這個對象屬性/屬性
- 22. 我應該在哪裏發佈自定義單元格對象?
- 23. 我應該在哪裏創建對象?庫?廠?
- 24. 我應該在哪裏聲明數據庫對象
- 25. 我應該在哪裏創建一個對象?
- 26. 我應該在哪裏創建實體對象?
- 27. 我的<circle>在哪裏?
- 28. 我應該在哪裏進行可達性檢查?
- 29. 我的<script>應該在我的<dom-module>裏面嗎?
- 30. 轉換JSON對象列出<String>