1. 程式人生 > >後端DTO(資料傳輸物件)與DO(資料庫資料來源物件)解耦的好處

後端DTO(資料傳輸物件)與DO(資料庫資料來源物件)解耦的好處

我們在後端的開發中經常會將DO物件傳到Service層直接作為DTO傳給前端,這樣做其實會有很多弊端。

(一)DO物件一般其成員域和資料庫欄位是對應的,所以不能新增額外的欄位,但是有時候端就是需要這個欄位。反之前端要向後端傳一些額外的欄位,DO也沒辦法接受,前端的Form表單不可能和資料庫共用同一套資料物件。

(二)DO可能是由框架控制生命週期的,比如hibernate,如果他的某個屬性是懶載入的,那萬一不在session中呼叫的話會丟擲異常。而DTO物件很乾淨,你可以自己控制DTO,喜歡就存在快取裡,不喜歡也沒關係。同時DO物件如果屬性變化的話會有是否需要同步更新資料庫的問題,而業務上DTO和DO並無關聯。