2011-04-06 48 views

回答

0

DTO =數據傳輸對象就像聽起來一樣。在系統層之間傳輸數據的對象。目的通常是調整請求和響應數據,以適應用例。示例可以是您通過應用程序層中的HR系統的CandidateService請求簡歷。候選服務加載的信息超出了跨越不同領域實體的範圍:WorkExperince,Education,Personal Letter等。爲了避免複雜而龐大的響應對象圖,我們可以通過構建一個DTO對象來平滑回應對象,該對象完全爲客戶端(GUI)需要。

對DTO有很多話要說。但我不想寫一本小說:)但DTO不屬於域模型中的核心。 DTO主要用DDD作爲應用程序服務與客戶端之間的通信工具,尤其是在使用Web服務(WCF等)時。然後DTO是將部分域名序列化爲Web服務消息(序列化DTO)的完美方式。

希望你可以問你的同事/同事以及他們打算用DTO完成什麼。 DTO有幾個缺點,通常它給你一個額外的層,這意味着在維護階段需要做更多的事情......

(幾乎是現在的小說)我使用DTO的時候纔有真正的好處,那就是當您可以提供與DTO完全匹配客戶需求的複雜響應。否則,客戶通常需要調用不同的服務或方法來收集足夠的信息。

2

DTO的是僅用於數據傳送出一個數據庫(通常經由ORM)和使這些數據可用於應用程序的更高的層簡單的數據結構的對象。如果一個DTO被用於饋入一個適當的領域模型層,這在架構上是有效的(儘管也許是多餘的)。如果您將DTO視爲域模型層(換句話說,您沒有與用戶界面分離的域邏輯),那麼您將DTO用作anemic domain model,這是一種嚴重的架構反模式。

相關問題