PO:持久對(duì)象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity捐友,po的每個(gè)屬性基本上都對(duì)應(yīng)數(shù)據(jù)庫(kù)表里面的某個(gè)字段量愧。完全是一個(gè)符合Java Bean規(guī)范的純Java對(duì)象钾菊,沒(méi)有增加別的屬性和方法帅矗。持久對(duì)象是由insert數(shù)據(jù)庫(kù)創(chuàng)建,由數(shù)據(jù)庫(kù)delete刪除的结缚∷鹞睿基本上持久對(duì)象生命周期和數(shù)據(jù)庫(kù)密切相關(guān)软棺。
VO:值對(duì)象(Value Object)红竭,通常用于業(yè)務(wù)層之間的數(shù)據(jù)傳遞,和PO一樣也是僅僅包含數(shù)據(jù)而已喘落。但應(yīng)是抽象出的業(yè)務(wù)對(duì)象茵宪,可以和表對(duì)應(yīng),也可以不瘦棋,這根據(jù)業(yè)務(wù)的需要稀火。
表現(xiàn)層對(duì)象(View Object),主要對(duì)應(yīng)展示界面顯示的數(shù)據(jù)對(duì)象赌朋,用一個(gè)VO對(duì)象來(lái)封裝整個(gè)界面展示所需要的對(duì)象數(shù)據(jù)凰狞。
BO:業(yè)務(wù)對(duì)象層的縮寫(Business Object),封裝業(yè)務(wù)邏輯的java對(duì)象沛慢,通過(guò)調(diào)用DAO方法赡若,結(jié)合PO,VO進(jìn)行業(yè)務(wù)操作。具體可以看網(wǎng)上的一個(gè)例子:
比如一個(gè)簡(jiǎn)歷团甲,有教育經(jīng)歷逾冬、工作經(jīng)歷、社會(huì)關(guān)系等等躺苦。
我們可以把教育經(jīng)歷對(duì)應(yīng)一個(gè)PO身腻,工作經(jīng)歷對(duì)應(yīng)一個(gè)PO,社會(huì)關(guān)系對(duì)應(yīng)一個(gè)PO匹厘。
建立一個(gè)對(duì)應(yīng)簡(jiǎn)歷的BO對(duì)象處理簡(jiǎn)歷嘀趟,每個(gè)BO包含這些PO。
這樣處理業(yè)務(wù)邏輯時(shí)愈诚,我們就可以針對(duì)BO去處理她按。
DTO:數(shù)據(jù)傳輸對(duì)象(Data Transfer Object)**,是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng)扰路。數(shù)據(jù)傳輸目標(biāo)往往是數(shù)據(jù)訪問(wèn)對(duì)象從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)尤溜。數(shù)據(jù)傳輸對(duì)象與數(shù)據(jù)交互對(duì)象或數(shù)據(jù)訪問(wèn)對(duì)象之間的差異是一個(gè)以不具有任何行為除了存儲(chǔ)和檢索的數(shù)據(jù)(訪問(wèn)和存取器)。簡(jiǎn)單來(lái)說(shuō)汗唱,當(dāng)我們需要一個(gè)對(duì)象10個(gè)字段的內(nèi)容宫莱,但這個(gè)對(duì)象總共有20個(gè)字段,我們不需要把整個(gè)PO對(duì)象全部字段傳輸?shù)娇蛻舳肆ㄗ铮强梢杂肈TO重新封裝授霸,傳遞到客戶端巡验。此時(shí),如果這個(gè)對(duì)象用來(lái)對(duì)應(yīng)界面的展現(xiàn)碘耳,就叫VO显设。
POJO:POJO(Plain Ordinary Java Object)簡(jiǎn)單的Java對(duì)象,實(shí)際就是普通JavaBeans辛辨,是為了避免和EJB混淆所創(chuàng)造的簡(jiǎn)稱捕捂。通指沒(méi)有使用Entity Beans的普通java對(duì)象,可以把POJO作為支持業(yè)務(wù)邏輯的協(xié)助類斗搞。
POJO實(shí)質(zhì)上可以理解為簡(jiǎn)單的實(shí)體類指攒,顧名思義POJO類的作用是方便程序員使用數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,對(duì)于廣大的程序員僻焚,可以很方便的將POJO類當(dāng)做對(duì)象來(lái)進(jìn)行使用允悦,當(dāng)然也是可以方便的調(diào)用其get,set方法。POJO類也給我們?cè)趕truts框架中的配置帶來(lái)了很大的方便虑啤。
一個(gè)POJO持久化以后就是PO
直接用它傳遞隙弛、傳遞過(guò)程中就是DTO
直接用來(lái)對(duì)應(yīng)表示層就是VO
DAO: 數(shù)據(jù)訪問(wèn)對(duì)象是第一個(gè)面向?qū)ο?/a>的數(shù)據(jù)庫(kù)接口**,是一個(gè)數(shù)據(jù)訪問(wèn)接口(Data Access Object)狞山。它可以把POJO持久化為PO全闷,用PO組裝出來(lái)VO、DTO铣墨。
DAO模式是標(biāo)準(zhǔn)的J2EE設(shè)計(jì)模式之一.開發(fā)人員使用這個(gè)模式把底層的數(shù)據(jù)訪問(wèn)操作和上層的商務(wù)邏輯分開.一個(gè)典型的DAO實(shí)現(xiàn)有下列幾個(gè)組件:
1. 一個(gè)DAO工廠類室埋;
2. 一個(gè)DAO接口;
3. 一個(gè)實(shí)現(xiàn)DAO接口的具體類伊约;
4. 數(shù)據(jù)傳遞對(duì)象(有些時(shí)候叫做值對(duì)象).
具體的DAO類包含了從特定的數(shù)據(jù)源訪問(wèn)數(shù)據(jù)的邏輯姚淆,一般一個(gè)DAO類和一張表對(duì)應(yīng),每個(gè)操作要和事務(wù)關(guān)聯(lián)屡律。