java 深入了解DTO及如何使用DTO
這篇文章主要來(lái)談?wù)撘幌翫TO使用的場(chǎng)合及其帶來(lái)的好處。首先要理解DTO是什么?
DTO就是數(shù)據(jù)傳輸對(duì)象(Data Transfer Object)的縮寫(xiě)。DTO模式,是指將數(shù)據(jù)封裝成普通的JavaBeans,在J2EE多個(gè)層次之間傳輸。?? DTO類(lèi)似信使,是同步系統(tǒng)中的Message。? 該JavaBeans可以是一個(gè)數(shù)據(jù)模型Model。????
在傳統(tǒng)的編程中,我們一般都是前臺(tái)請(qǐng)求數(shù)據(jù),發(fā)送到Webservice,然后WebService向數(shù)據(jù)庫(kù)發(fā)出請(qǐng)求,獲取數(shù)據(jù),然后一層層返回;模型如下:
這種比較原始的請(qǐng)求方式帶來(lái)的缺點(diǎn)有很多,多次請(qǐng)求耗費(fèi)一定的網(wǎng)絡(luò)資源,減慢效率。如果一次性返回整個(gè)實(shí)體類(lèi),還可能造成數(shù)據(jù)庫(kù)表結(jié)構(gòu)的泄漏。
采用DTO模型之后,整個(gè)流程就不一樣了:
這樣帶來(lái)的好處有:
1.依據(jù)現(xiàn)有的類(lèi)代碼,即可方便的構(gòu)造出DTO對(duì)象,而無(wú)需重新進(jìn)行分析。
2.減少請(qǐng)求次數(shù),大大提高效率。
3.按需組織DTO對(duì)象,頁(yè)面需要的字段我才組織,不需要的我不組織,可以避免傳輸整個(gè)表的字段,一定程度上提高了安全性。
結(jié)合個(gè)人的開(kāi)發(fā)經(jīng)驗(yàn)來(lái)談一下用法:
? ? ? ?一般我們使用DTO類(lèi)來(lái)繼承entity實(shí)體類(lèi),在DTO類(lèi)里放一些業(yè)務(wù)字段,并提供get、set方法。當(dāng)我們?cè)跇I(yè)務(wù)邏輯層或者交互層用到一些數(shù)據(jù)庫(kù)中不存在的字段時(shí),我們就需要在DTO類(lèi)里放這些字段,這些字段的意義就相當(dāng)于一些經(jīng)處理過(guò)的數(shù)據(jù)庫(kù)字段,實(shí)質(zhì)意義就是方便數(shù)據(jù)交互,提高效率。
總結(jié)
以上是生活随笔為你收集整理的java 深入了解DTO及如何使用DTO的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。