DTO 資料傳輸物件

2022-09-04 06:18:09 字數 693 閱讀 5135

dto即資料傳輸物件(data transfer object)。之前不明白有些框架中為什麼要專門定義dto來繫結表現層(頁面)中的資料,為什麼不能直接用領域模型(domain object)呢,有了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資料傳輸物件詳解

dto 資料傳輸物件 資料傳輸物件 dto 是一種設計模式之間傳輸資料的軟體應用系統。資料傳輸目標往往是資料訪問物件從資料庫中檢索資料。資料傳輸物件與資料互動物件或資料訪問物件之間的差異是乙個以不具有任何行為除了儲存和檢索的資料 訪問和訪問器 簡單了說 假設你資料庫中定義了user類,包含使用者名稱...

DTO資料傳輸物件與AutoMapper

dto 資料傳輸物件,應用在entity實體與前端介面的展示問題。在前端需要的屬性資料少而entity屬性資料多的時候,我們不可能將整個entity都傳進前端介面但是又不取 不取為何要傳?也不能將所需要的資料通過鍵值對的方式進行一次次的傳遞,這個時候,我們就需要dto,用於封裝需要傳輸的資料,並將所...

我們為什麼需要DTO 資料傳輸物件

dto即資料傳輸物件。之前不明白有些框架中為什麼要專門定義dto來繫結表現層中的資料,為什麼不能直接用實體模型呢,有了dto同時還要維護dto與model之間的對映關係,多麻煩。然後看了這篇文章中的討論部分才恍然大悟。摘兩個比較有意義的段落。表現層與應用層之間是通過資料傳輸物件 dto 進行互動的,...