以下為個人觀點,給出了基本增刪改查介面的設計,如有不同觀點,可以指正:
dto設計:為每個實體建立乙個對應的dto
列表查詢:返回聚合根的dto列表或自定義的dto
單個實體查詢:返回整個聚合的dto或自定義的dto
以下是基本的命令介面(增刪改),根據業務邏輯是否允許如下操作進行新增
增加:增加乙個聚合根
修改:前端傳送整個聚合,後端修改整個聚合
刪除:刪除整個聚合
這樣設計的原因是為了減少介面的數量,前提是聚合允許這樣操作,但並不是每個聚合都允許這樣操作,例如使用者聚合包含賬號實體,而你不能因為修改了使用者暱稱卻要將整個賬號實體給替換掉吧
有人說查詢資料應該一次性返回所有資料
有人又說dto應該扁平化(即沒有巢狀結構)
但經本人實踐,這兩種設計所要實現的介面過多且無規則可循
DAO與DTO的區別
dao data access object資料訪問物件 主要用來封裝對資料庫的訪問。通過它可以把pojo持久化為po,用po組裝出來vo dto dto data transfer object資料傳輸物件 主要用於遠端呼叫等需要大量傳輸物件的地方。比如我們一張表有100個字段,那麼對應的po就有...
DTO與實體物件的區別
1 什麼是dto dto data tansfer object 即資料傳輸物件。之前不明白有些框架中為什麼要專門定義dto來繫結表現層中的資料,為什麼不能直接用實體模型呢,有了dto同時還要維護dto與model之間的對映關係,多麻煩。然後看了這篇文章中的討論部分才恍然大悟。表現層與應用層之間是通...
Dto與Model之間的轉換
2017 03 17 0.7.5 2配置轉換類 clazza 到 clazzb public class config maper.validate return maper 3具體位置直接呼叫 4擴充套件轉換類比如classa中是 type列舉,而classb中 type是short型別增加轉換器...