2010-03-13 69 views

回答

5

DTOs的主要動機是呈現爲另一層(通常是表示層)量身定製的界面。例如,數據輸入屏幕可能需要來自用戶對象的一些數據以及來自訂單的某些位等。在這種情況下,DTO的域應發生在表示層調用的層,即典型地一個「服務」層。

這裏有像Dozer這樣的庫,可以自動執行域模型和DTO之間轉換的繁瑣工作。

DTO的目的是將數據(而非業務邏輯)從更豐富的領域模型對象中抽象出來 - 因此,DTO應儘早轉換回領域對象(在服務層)的應用程序層可能與更豐富的域對象(數據和業務邏輯)一起工作

2

我不是DTO的粉絲,但我說不要在數據層中這樣做。數據層處理模型對象及其持久性。爲什麼要將DTO加入其他層中?我會將它們映射到其他地方,可能位於服務和用戶界面之間,就在它們跨越創建位置和使用位置之間的邊界。

相關問題