PO BO VO DTO POJO DAO DO這些Java中的概念分別指一些什么

1. 縮寫的含義

PO是 Persistant Object 的縮寫涂籽,用于表示數(shù)據(jù)庫中的一條記錄映射成的 java 對象毯欣。PO 僅僅用于表示數(shù)據(jù)吃型,沒有任何數(shù)據(jù)操作唧瘾。通常遵守 Java Bean 的規(guī)范,擁有 getter/setter 方法缨该。

DAO 是 Data Access Object 的縮寫偎行,用于表示一個(gè)數(shù)據(jù)訪問對象。使用 DAO 訪問數(shù)據(jù)庫贰拿,包括插入蛤袒、更新、刪除膨更、查詢等操作妙真,與 PO 一起使用。DAO 一般在持久層询一,完全封裝數(shù)據(jù)庫操作隐孽,對外暴露的方法使得上層應(yīng)用不需要關(guān)注數(shù)據(jù)庫相關(guān)的任何信息。

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

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

BO 是 Business Object 的縮寫慨蓝,用于表示一個(gè)業(yè)務(wù)對象感混。BO 包括了業(yè)務(wù)邏輯,常常封裝了對 DAO菌仁、RPC 等的調(diào)用浩习,可以進(jìn)行 PO 與 VO/DTO 之間的轉(zhuǎn)換。BO 通常位于業(yè)務(wù)層济丘,要區(qū)別于直接對外提供服務(wù)的服務(wù)層:BO 提供了基本業(yè)務(wù)單元的基本業(yè)務(wù)操作,在設(shè)計(jì)上屬于被服務(wù)層業(yè)務(wù)流程調(diào)用的對象洽蛀,一個(gè)業(yè)務(wù)流程可能需要調(diào)用多個(gè) BO 來完成摹迷。

DO( Data Object):與數(shù)據(jù)庫表結(jié)構(gòu)一一對應(yīng),通過DAO層向上傳輸數(shù)據(jù)源對象郊供。

POJO 是 Plain Ordinary Java Object 的縮寫峡碉,表示一個(gè)簡單 java 對象。上面說的 PO驮审、VO鲫寄、DTO 都是典型的 POJO。而 DAO疯淫、BO 一般都不是 POJO地来,只提供一些調(diào)用方法。

2. 應(yīng)用

不同類型的對象在架構(gòu)設(shè)計(jì)中用于不同的用途熙掺,如下的分層架構(gòu)表示了各個(gè) POJO 的用途未斑。為什么要在分層架構(gòu)中,定義這些 POJO 對象呢币绩?主要是為了確保各個(gè)分層能夠很好地封裝自己的服務(wù)蜡秽,有效地控制信息的傳播。


2019102301.jpg

試想一下缆镣,如果沒有 VO 和 PO 的區(qū)別芽突,那么數(shù)據(jù)庫表結(jié)構(gòu)的所有字段就一覽無余地展示到了前端,給后臺安全帶來很大的隱患董瞻,并且無法在網(wǎng)絡(luò)傳輸中剝離冗余信息提高了用戶的帶寬成本寞蚌。

3. 實(shí)例

以一個(gè)實(shí)例來探討下 POJO 的使用。假設(shè)我們有一個(gè)面試系統(tǒng),數(shù)據(jù)庫中存儲了很多面試題睬澡,通過 web 和 API 提供服務(wù)固额。可能會做如下的設(shè)計(jì):

數(shù)據(jù)表:表中的面試題包括編號煞聪、題目斗躏、選項(xiàng)、答案昔脯、創(chuàng)建時(shí)間啄糙、修改時(shí)間;PO:包括題目云稚、選項(xiàng)隧饼、答案、創(chuàng)建時(shí)間静陈、修改時(shí)間燕雁;

VO:題目、選項(xiàng)鲸拥、答案拐格、上一題URL、下一題URL刑赶;

DTO:編號捏浊、題目、選項(xiàng)撞叨、答案金踪、上一題編號、下一題編號牵敷;

DAO:數(shù)據(jù)庫增刪改查方法胡岔;

BO:業(yè)務(wù)基本操作。

可以看到劣领,進(jìn)行 POJO 劃分后姐军,我們得到了一個(gè)設(shè)計(jì)良好的架構(gòu),各層數(shù)據(jù)對象的修改完全可以控制在有限的范圍內(nèi)尖淘。

相關(guān)文章:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市村生,隨后出現(xiàn)的幾起案子惊暴,更是在濱河造成了極大的恐慌,老刑警劉巖趁桃,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辽话,死亡現(xiàn)場離奇詭異肄鸽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)油啤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門典徘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人益咬,你說我怎么就攤上這事逮诲。” “怎么了幽告?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵梅鹦,是天一觀的道長。 經(jīng)常有香客問我冗锁,道長齐唆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任冻河,我火速辦了婚禮箍邮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芋绸。我一直安慰自己媒殉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布摔敛。 她就那樣靜靜地躺著,像睡著了一般全封。 火紅的嫁衣襯著肌膚如雪马昙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天刹悴,我揣著相機(jī)與錄音行楞,去河邊找鬼。 笑死土匀,一個(gè)胖子當(dāng)著我的面吹牛子房,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播就轧,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼证杭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妒御?” 一聲冷哼從身側(cè)響起解愤,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乎莉,沒想到半個(gè)月后送讲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奸笤,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年哼鬓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了监右。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡异希,死狀恐怖健盒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宠互,我是刑警寧澤味榛,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站予跌,受9級特大地震影響搏色,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜券册,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一频轿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烁焙,春花似錦航邢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至九火,卻和暖如春赚窃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背岔激。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工勒极, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虑鼎。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓辱匿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親炫彩。 傳聞我的和親對象是個(gè)殘疾皇子匾七,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容