DTO與實體物件的區別

2021-06-22 05:08:47 字數 684 閱讀 5688

1、什麼是dto

dto(

data tansfer object

)即資料傳輸物件。之前不明白有些框架中為什麼要專門定義dto來繫結表現層中的資料,為什麼不能直接用實體模型呢,有了dto同時還要維護dto與model之間的對映關係,多麻煩。

然後看了這篇文章中的討論部分才恍然大悟。

表現層與應用層之間是通過資料傳輸物件(dto)進行互動的,資料傳輸物件是沒有行為的poco物件,它 的目的只是為了對領域物件進行資料封裝,實現層與層之間的資料傳遞。為何不能直接將領域物件用於 資料傳遞?因為領域物件更注重領域,而dto更注重資料。不僅如此,由於「富領域模型」的特點,這樣 做會直接將領域物件的行為暴露給表現層。

需要了解的是,資料傳輸物件dto本身並不是業務物件。資料傳輸物件是根據ui的需求進行設計的,而不 是根據領域物件進行設計的。比如,customer領域物件可能會包含一些諸如firstname, lastname, email, address等資訊。但如果ui上不打算顯示address的資訊,那麼customerdto中也無需包含這個 address的資料

簡單來說model面向業務,我們是通過業務來定義model的。而dto是面向介面ui,是通過ui的需求來定義的。通過dto我們實現了表現層與model之間的解耦,表現層不引用model,如果開發過程中我們的模型改變了,而介面沒變,我們就只需要改model而不需要去改表現層中的東西。

實體類與實體DTO類之間的轉換

通過nuget包管理器新增newtonsoft.json 構造乙個trans的靜態方法 public static tout trans tin tin 前端呼叫 people people new people 構造乙個trans的靜態方法 public static tout trans tin...

DAO與DTO的區別

dao data access object資料訪問物件 主要用來封裝對資料庫的訪問。通過它可以把pojo持久化為po,用po組裝出來vo dto dto data transfer object資料傳輸物件 主要用於遠端呼叫等需要大量傳輸物件的地方。比如我們一張表有100個字段,那麼對應的po就有...

實體類轉換DTO的方式

背景 在對外傳輸資料展示過程中,為了避免model層直接對外暴露,我們會多加乙個對應的dto保理想要傳輸的資料即可,隱藏model層。應對 1.第一種,如果是實體類字段型別都一樣,大部分會採用bean拷貝的方式,beanutils.copyproperties obj,obj 單個物件的轉換還好,但...