VO纳令,PO

VO,PO區(qū)別

VO克胳,PO 它們的關(guān)系應(yīng)該是相互獨(dú)立的平绩,一個VO可以只是PO的部分,也可以是多個PO構(gòu)成漠另,同樣也可以等同于一個PO(指的是他們的屬性)捏雌。這樣,PO獨(dú)立出來笆搓,數(shù)據(jù)持久層也就獨(dú)立出來了性湿,它不會受到任何業(yè)務(wù)的干涉纬傲,業(yè)務(wù)邏輯層也獨(dú)立開來,它不會受到數(shù)據(jù)持久層的影響肤频,業(yè)務(wù)層關(guān)心的只是業(yè)務(wù)邏輯的處理叹括,不過,如果我們沒有使用數(shù)據(jù)持久層宵荒,或者說沒有使用hibernate汁雷,那么PO和VO也可以是同一個東西,雖然這并不好骇扇。
VO摔竿,值對象(Value Object),PO少孝,持久對象(Persisent Object)继低,它們都是由一組屬性和屬性的get和set方法組成。從結(jié)構(gòu)上看稍走,它們并沒有什么不同的地方袁翁。但從其意義和本質(zhì)上來看是完全不同的:

  1. VO是用new關(guān)鍵字創(chuàng)建,由GC回收的婿脸。 PO則是向數(shù)據(jù)庫中添加新數(shù)據(jù)時創(chuàng)建粱胜,刪除數(shù)據(jù)庫中數(shù)據(jù)時削除的。且它只能存活在一個數(shù)據(jù)庫連接中狐树,斷開連接即被銷毀焙压。
  2. VO是值對象,精確點(diǎn)講它是業(yè)務(wù)對象抑钟,是存活在業(yè)務(wù)層的涯曲,是業(yè)務(wù)邏輯使用的,它存活的目的就是為數(shù)據(jù)提供一個生存的地方在塔。PO則是有狀態(tài)的幻件,每個屬性代表其當(dāng)前的狀態(tài)。它是物理數(shù)據(jù)的對象表示蛔溃。使用它绰沥,可以使我們的程序與物理數(shù)據(jù)解耦,并且可以簡化對象數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換贺待。
  3. VO的屬性是根據(jù)當(dāng)前業(yè)務(wù)的不同而不同的徽曲,也就是說,它的每一個屬性都一一對應(yīng)當(dāng)前業(yè)務(wù)邏輯所需要的數(shù)據(jù)的名稱麸塞。PO的屬性是跟數(shù)據(jù)庫表的字段一一對應(yīng)的疟位。

PO TO BO POJO DAO DTO

  • PO(persistant object) 持久對象,通常對應(yīng)數(shù)據(jù)模型(數(shù)據(jù)庫)喘垂,本身還有部分業(yè)務(wù)邏輯的處理甜刻。可以看成是與數(shù)據(jù)庫中的表相映射的java對象正勒。最簡單的PO就是對應(yīng)數(shù)據(jù)庫中某個表中的一條記錄得院,多個記錄可以用PO的集合。PO中應(yīng)該不包含任何對數(shù)據(jù)庫的操作章贞。VO(value object) 值對象祥绞,通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已鸭限。但應(yīng)是抽象出的業(yè)務(wù)對象蜕径,可以和表對應(yīng),也可以不败京,這根據(jù)業(yè)務(wù)的需要兜喻。個人覺得同DTO(數(shù)據(jù)傳輸對象),在web上傳遞赡麦。

  • TO(Transfer Object)朴皆,數(shù)據(jù)傳輸對象,在應(yīng)用程序不同關(guān)系之間傳輸?shù)膶ο蟆?/p>

  • BO(business object) 業(yè)務(wù)對象泛粹,從業(yè)務(wù)模型的角度看遂铡,見UML元件領(lǐng)域模型中的領(lǐng)域?qū)ο蟆7庋b業(yè)務(wù)邏輯的java對象晶姊,通過調(diào)用DAO方法扒接,結(jié)合PO,VO進(jìn)行業(yè)務(wù)操作们衙。

  • POJO(plain ordinary java object) 簡單無規(guī)則java對象,純的傳統(tǒng)意義的java對象钾怔。就是說在一些Object/Relation Mapping工具中,能夠做到維護(hù)數(shù)據(jù)庫表記錄的persisent object完全是一個符合Java Bean規(guī)范的純Java對象砍艾,沒有增加別的屬性和方法蒂教。我的理解就是最基本的Java Bean,只有屬性字段及setter和getter方法脆荷。

  • DAO(data access object) 數(shù)據(jù)訪問對象凝垛,最主要是訪問數(shù)據(jù)類,一個DAO對應(yīng)一個POJO對象蜓谋,是一個sun的一個標(biāo)準(zhǔn)j2ee設(shè)計模式梦皮,這個模式中有個接口就是DAO,它負(fù)持久層的操作桃焕,為業(yè)務(wù)層提供接口剑肯,用于訪問數(shù)據(jù)庫,通常和PO結(jié)合使用观堂,DAO中包含了各種數(shù)據(jù)庫的操作方法让网。通過它的方法呀忧,結(jié)合PO對數(shù)據(jù)庫進(jìn)行相關(guān)的操作。夾在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間溃睹。配合VO而账, 提供數(shù)據(jù)庫的CRUD操作。

  • DTO(Data Transfer Object)數(shù)據(jù)傳輸對象因篇,很少用泞辐,基本放入到DAO中,只是起到過渡的作用竞滓。主要用于遠(yuǎn)程調(diào)用等需要大量傳輸對象的地方咐吼。比如我們一張表有100個字段,那么對應(yīng)的PO就有100個屬性商佑。但是我們界面上只要顯示10個字段锯茄,客戶端用WEB service來獲取數(shù)據(jù),沒有必要把整個PO對象傳遞到客戶端莉御,這時我們就可以用只有這10個屬性的DTO來傳遞結(jié)果到客戶端撇吞,這樣也不會暴露服務(wù)端表結(jié)構(gòu)。到達(dá)客戶端以后礁叔,如果用這個對象來對應(yīng)界面顯示牍颈,那此時它的身份就轉(zhuǎn)為VO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市琅关,隨后出現(xiàn)的幾起案子煮岁,更是在濱河造成了極大的恐慌醒颖,老刑警劉巖匠楚,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異系任,居然都是意外死亡新症,警方通過查閱死者的電腦和手機(jī)步氏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徒爹,“玉大人荚醒,你說我怎么就攤上這事÷⌒幔” “怎么了界阁?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胖喳。 經(jīng)常有香客問我泡躯,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任较剃,我火速辦了婚禮咕别,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘写穴。我一直安慰自己顷级,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布确垫。 她就那樣靜靜地躺著,像睡著了一般帽芽。 火紅的嫁衣襯著肌膚如雪删掀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天导街,我揣著相機(jī)與錄音披泪,去河邊找鬼。 笑死搬瑰,一個胖子當(dāng)著我的面吹牛款票,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泽论,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼艾少,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了翼悴?” 一聲冷哼從身側(cè)響起缚够,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹦赎,沒想到半個月后谍椅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡古话,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年雏吭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陪踩。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡杖们,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膊毁,到底是詐尸還是另有隱情胀莹,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布婚温,位于F島的核電站描焰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荆秦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一篱竭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧步绸,春花似錦掺逼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至刑桑,卻和暖如春氯质,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祠斧。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工闻察, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琢锋。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓辕漂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吴超。 傳聞我的和親對象是個殘疾皇子钉嘹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

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

  • Java分層概念(轉(zhuǎn)) 原文地址(也不屬于原文吧,這也是別人轉(zhuǎn)載的不知道原作者是誰烛芬,如有侵權(quán)隧期,請聯(lián)系,以刪除):h...
    小小世界R閱讀 1,636評論 0 0
  • 一個項目中說系統(tǒng)分為表現(xiàn)層赘娄、控制層仆潮、邏輯層、DAO層和最終數(shù)據(jù)庫五層架構(gòu) 表現(xiàn)層就是看到的東西遣臼,比如你現(xiàn)在看到的當(dāng)...
    ZZS_簡閱讀 1,251評論 0 1
  • java的(PO,VO,TO,BO,DAO,POJO)解釋 O/R Mapping 是 Object Relati...
    李序鍇閱讀 2,259評論 0 7
  • service是業(yè)務(wù)層,DAO (Data Access Object) 數(shù)據(jù)訪問 1.JAVA中Action層,...
    FSDemo閱讀 4,552評論 0 5
  • PO(persistant object) 持久對象在 o/r 映射的時候出現(xiàn)的概念隐砸,如果沒有 o/r 映射,沒有...
    sirai閱讀 2,396評論 0 2