DO、DTO、VO的概念

主要結(jié)論

在項(xiàng)目應(yīng)用中,VO對(duì)應(yīng)于頁(yè)面上需要顯示的數(shù)據(jù)(表單),DO對(duì)應(yīng)于數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)(數(shù)據(jù)表),DTO對(duì)應(yīng)于除二者之外需要進(jìn)行傳遞的數(shù)據(jù)。

DO(Domain Object)

就是從現(xiàn)實(shí)世界中抽象出來的有形或無(wú)形的業(yè)務(wù)實(shí)體。一般和數(shù)據(jù)中的表結(jié)構(gòu)對(duì)應(yīng)。

VO (Value Object )

用于表示一個(gè)與前端進(jìn)行交互的 java 對(duì)象。有的朋友也許有疑問,這里可不可以使用 PO 傳遞數(shù)據(jù)?實(shí)際上,這里的 VO 只包含前端需要展示的數(shù)據(jù)即可,對(duì)于前端不需要的數(shù)據(jù),比如數(shù)據(jù)創(chuàng)建和修改的時(shí)間等字段,出于減少傳輸數(shù)據(jù)量大小和保護(hù)數(shù)據(jù)庫(kù)結(jié)構(gòu)不外泄的目的,不應(yīng)該在 VO 中體現(xiàn)出來。通常遵守 Java Bean 的規(guī)范,擁有 getter/setter 方法。

DTO (Data Transfer Object)

用于表示一個(gè)數(shù)據(jù)傳輸對(duì)象。DTO 通常用于不同服務(wù)或服務(wù)不同分層之間的數(shù)據(jù)傳輸。DTO 與 VO 概念相似,并且通常情況下字段也基本一致。但 DTO 與 VO 又有一些不同,這個(gè)不同主要是設(shè)計(jì)理念上的,比如 API 服務(wù)需要使用的 DTO 就可能與 VO 存在差異。通常遵守 Java Bean 的規(guī)范,擁有 getter/setter 方法。

POJO(Plain Ordinary Java Object)

表示一個(gè)簡(jiǎn)單 java 對(duì)象。上面說的 DO、VO、DTO 都是典型的 POJO

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容