我們為什麼需要DTO?

2021-09-06 14:29:44 字數 611 閱讀 6736

看了幾套原始碼,其中都有用到dto,這篇文章主要來談論一下dto使用的場合及其帶來的好處。

在傳統的程式設計中,我們一般都是前台請求資料,傳送到webservice,然後webservice向資料庫發出請求,獲取資料,然後一層層返回;模型如下:

這種比較原始的請求方式帶來的缺點有很多,多次 請求耗費一定的網路資源,減慢效率。如果一次性返回整個實體類,還可能造成資料庫表結構的洩漏。

採用dto模型之後,整個流程就不一樣了:

這樣帶來的好處有:

1.依據現有的類**,即可方便的構造出dto物件,而無需重新進行分析。

2.減少請求次數,大大提高效率。

3.按需組織dto物件,頁面需要的字段我才組織,不需要的我不組織,可以避免傳輸整個表的字段,一定程度上提高了安全性。

通過以上三點,可以看出dto的設計應該具備這幾個特點:

1.按需放入字段。

2.保證貧血模型,不要放任何邏輯在裡面。

為什麼我們要使用DTO

乙個完整的業務是通過領域實體 物件 domain建立的,而dto是根據ui的需求來設計的。比如 customer領域物件可能會包含一些諸如firstname,lastname,email,address等資訊。但如果ui上不打算顯示address的資訊,那麼customerdto中也無需包含這個 a...

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

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

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

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