為什么我們要使用DTO


基礎結構解釋

  • UI-表現層-與控制器打交道(UI向Controller 傳遞數據時使用DTO(數據傳輸對象))
  • Service-應用服務層
  • Domain 領域對象
  • DTO 數據傳輸對象,一般只包含基礎的Get,Set功能,也會包含一些數據驗證,如必填項,大小,自定義規則等。

一個完整的業務是通過領域實體(對象)domain建立的,而DTO是根據UI的需求來設計的。

  1. 比如:Customer領域對象可能會包含一些諸如FirstName, LastName, Email, Address等信息。但如果UI上不打算顯示Address的信息,那么CustomerDTO中也無需包含這個 Address的數據。

  2. 比如:User表設計字段如下:Id,UserName,Password,RegisterTime。注冊時,那這個接口的參數應該只有UserName,Password,因為RegisterTime是后台賦值的,Id是數據庫自動生成的。即設計一個RegisterDto,只包含UserName,Password二個字段,作為注冊接口的參數。不然,那二個參數對於開發前端的人來說是無意義的,因為傳遞也沒有效果。所以不應該暴露給前端使用。

以上即領域對象來實現業務,DTO只注重數據。

UI->Controller(通過 DTO完成數據傳輸,表單驗證)->Service(操作Domain,完成業務服務)。
DTO->Domain,在C#中可使用一些類庫,快速將二個類相互轉換。良好的設計什么要使用DTO,集成 AutoMapper


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM