(掃盲)DTO數據傳輸對象

DTO即數據傳輸對象。但從定義上看就是簡單的用來傳遞數據的。主要用途是在框架中定義DTO來綁定表現層中的數據。學過MVC、EF實體模型的都應該知道,咱們能夠定義一個Model實體來實現先後臺數據的交互。那爲什麼咱們還要使用DTO呢,有了DTO同時還要維護DTO與Model之間的映射關係,多麻煩。固然這只是咱們本身的猜測,既然在框架中使用DTO,確定是有他區別於Model的用處。下面就簡單的介紹一下二者:

1.表現層與應用層之間是經過數據傳輸對象(DTO)進行交互的,數據傳輸對象是沒有行爲的POCO對象,它的目的只是爲了對領域對象進行數據封裝,實現層與層之間的數據傳遞。爲什麼不能直接將領域對象用於數據傳遞?由於領域對象更注重領域,而DTO更注重數據。不只如此,因爲「富領域模型」的特色,這樣 作會直接將領域對象的行爲暴露給表現層。框架

2.須要瞭解的是,數據傳輸對象DTO自己並非業務對象。數據傳輸對象是根據UI的需求進行設計的,而不是根據領域對象進行設計的。好比,Customer領域對象可能會包含一些諸如FirstName, LastName,  Address等信息。但若是UI上不打算顯示Address的信息,那麼CustomerDTO中也無需包含這個 Address的數據。設計

簡單來講Model面向業務,咱們是經過業務來定義Model的。而DTO是面向界面UI,是經過UI的需求來定義的。經過DTO咱們實現了表現層與Model之間的解耦,表現層不引用Model,若是開發過程當中咱們的模型改變了,而界面沒變,咱們就只須要改Model而不須要去改表現層中的東西對象

相關文章
相關標籤/搜索