網(wǎng)站首頁 編程語言 正文
DTO即數(shù)據(jù)傳輸對象。
之前不明白有些框架中為什么要專門定義DTO來綁定表現(xiàn)層中的數(shù)據(jù),為什么不能直接用實體模型呢,有了DTO同時還要維護DTO與Model之間的映射關(guān)系,多麻煩。
然后看了這篇文章中的討論部分才恍然大悟。
摘兩個比較有意義的段落。
表現(xiàn)層與應(yīng)用層之間是通過數(shù)據(jù)傳輸對象(DTO)進行交互的,數(shù)據(jù)傳輸對象是沒有行為的POCO對象,它?的目的只是為了對領(lǐng)域?qū)ο筮M行數(shù)據(jù)封裝,實現(xiàn)層與層之間的數(shù)據(jù)傳遞。為何不能直接將領(lǐng)域?qū)ο笥糜?數(shù)據(jù)傳遞?因為領(lǐng)域?qū)ο蟾⒅仡I(lǐng)域,而DTO更注重數(shù)據(jù)。不僅如此,由于“富領(lǐng)域模型”的特點,這樣?做會直接將領(lǐng)域?qū)ο蟮男袨楸┞督o表現(xiàn)層。
需要了解的是,數(shù)據(jù)傳輸對象DTO本身并不是業(yè)務(wù)對象。數(shù)據(jù)傳輸對象是根據(jù)UI的需求進行設(shè)計的,而不?是根據(jù)領(lǐng)域?qū)ο筮M行設(shè)計的。比如,Customer領(lǐng)域?qū)ο罂赡軙恍┲T如FirstName, LastName,?Email, Address等信息。但如果UI上不打算顯示Address的信息,那么CustomerDTO中也無需包含這個?Address的數(shù)據(jù)?
簡單來說Model面向業(yè)務(wù),我們是通過業(yè)務(wù)來定義Model的。而DTO是面向界面UI,是通過UI的需求來定義的。通過DTO我們實現(xiàn)了表現(xiàn)層與Model之間的解耦,表現(xiàn)層不引用Model,如果開發(fā)過程中我們的模型改變了,而界面沒變,我們就只需要改Model而不需要去改表現(xiàn)層中的東西。?
原文鏈接:https://blog.csdn.net/qq_46509116/article/details/135310052
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-04-25 C語言的結(jié)構(gòu)體你了解嗎_C 語言
- 2022-07-04 PyG搭建GCN模型實現(xiàn)節(jié)點分類GCNConv參數(shù)詳解_python
- 2022-04-28 C#網(wǎng)絡(luò)編程中常用特性介紹_C#教程
- 2023-01-13 Go簡單實現(xiàn)協(xié)程方法_Golang
- 2023-03-28 Python中的len()函數(shù)是什么意思_python
- 2022-10-05 redis?stream?實現(xiàn)消息隊列的實踐_Redis
- 2022-10-19 Python?變量教程私有變量詳解_python
- 2022-05-06 C#反射機制介紹_C#教程
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支