Model和DTO的區別


剛實習,在做項目的過程中看到Model和DTO都是定義的屬性,有點不明白為什么做這么做。

然后百度了一篇文章,在這里借鑒一下里面的內容:

簡單的說:DTO(數據傳輸對象)封裝的數據面向表現層(UI),Model封裝的數據面向業務邏輯層(service)。

好處:開發中模型改了但是UI沒變,則只需要改變model,而不需要改其他。

摘取自網上的文章:

表現層與應用層之間是通過數據傳輸對象(DTO)進行交互的,數據傳輸對象是沒有行為的POCO對象,它 的目的只是為了

對領域對象進行數據封裝,實現層與層之間的數據傳遞。為何不能直接將領域對象用於 數據傳遞?因為領域對象更注重領域,

而DTO更注重數據。不僅如此,由於“富領域模型”的特點,這樣 做會直接將領域對象的行為暴露給表現層。需要了解的是,數據

傳輸對象DTO本身並不是業務對象。數據傳輸對象是根據UI的需求進行設計的,而不 是根據領域對象進行設計的。比如,

Customer領域對象可能會包含一些諸如FirstName, LastName, Email, Address等信息。但如果UI上不打算顯示Address的那么

CustomerDTO中也無需包含這個 Address的數據。

總結:DTO的存在是為了跟Model解耦,當業務邏輯需要改變Model時,而不需要改變UI界面時,就只要改變Model里面的數據。

 


免責聲明!

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



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