PO:持久對(duì)象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每個(gè)屬性基本上都對(duì)應(yīng)數(shù)據(jù)庫表里面的某個(gè)字段。完全是一個(gè)符合Java Bean規(guī)范的純Java對(duì)象,沒有增加別的屬性和方法。持久對(duì)象是由insert數(shù)據(jù)庫創(chuàng)建,由數(shù)據(jù)庫delete刪除的?;旧铣志脤?duì)象生命周期和數(shù)據(jù)庫密切相關(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ì)象來封裝整個(gè)界面展示所需要的對(duì)象數(shù)據(jù)。 BO:業(yè)務(wù)對(duì)象層的縮寫(Business Object),封裝業(yè)務(wù)邏輯的java對(duì)象,通過調(diào)用DAO方法,結(jié)合PO,VO進(jìn)行業(yè)務(wù)操作。具體可以看網(wǎng)上的一個(gè)例子: 比如一個(gè)簡(jiǎn)歷,有教育經(jīng)歷、工作經(jīng)歷、社會(huì)關(guān)系等等。 DTO:數(shù)據(jù)傳輸對(duì)象(Data Transfer Object),是一種設(shè)計(jì)模式之間傳輸數(shù)據(jù)的軟件應(yīng)用系統(tǒng)。數(shù)據(jù)傳輸目標(biāo)往往是數(shù)據(jù)訪問對(duì)象從數(shù)據(jù)庫中檢索數(shù)據(jù)。數(shù)據(jù)傳輸對(duì)象與數(shù)據(jù)交互對(duì)象或數(shù)據(jù)訪問對(duì)象之間的差異是一個(gè)以不具有任何行為除了存儲(chǔ)和檢索的數(shù)據(jù)(訪問和存取器)。簡(jiǎn)單來說,當(dāng)我們需要一個(gè)對(duì)象10個(gè)字段的內(nèi)容,但這個(gè)對(duì)象總共有20個(gè)字段,我們不需要把整個(gè)PO對(duì)象全部字段傳輸?shù)娇蛻舳?,而是可以用DTO重新封裝,傳遞到客戶端。此時(shí),如果這個(gè)對(duì)象用來對(duì)應(yīng)界面的展現(xiàn),就叫VO。 JavaBean:一種可重用組件,即“一次性編寫,任何地方執(zhí)行,任何地方重用”。滿足三個(gè)條件①類必須是具體的和公共的②具有無參構(gòu)造器③提供一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露成員屬性。 主要用途:可以用在 功能、處理、值、數(shù)據(jù)庫訪問和JSP中任何可以用Java代碼創(chuàng)造的對(duì)象。 有兩種:一種是有用戶界面(UI,User Interface)的JavaBean;還有一種是沒有用戶界面,主要負(fù)責(zé)處理事務(wù)(如數(shù)據(jù)運(yùn)算,操縱數(shù)據(jù)庫)的JavaBean。JSP通常訪問的是后一種JavaBean。 分類:通常有Session bean,Entity bean,MessageDrivenBean三大類 ——Session bean會(huì)話構(gòu)件,是短暫的對(duì)象,運(yùn)行在服務(wù)器上,并執(zhí)行一些應(yīng)用邏輯處理,它由客戶端應(yīng)用程序建立,其數(shù)據(jù)需要自己來管理。分為無狀態(tài)和有狀態(tài)兩種。
——Entity bean實(shí)體構(gòu)件,是持久對(duì)象,可以被其他對(duì)象調(diào)用。在建立時(shí)指定一個(gè)唯一標(biāo)示的標(biāo)識(shí),并允許客戶程序,根據(jù)實(shí)體bean標(biāo)識(shí)來定位beans實(shí)例。多個(gè)實(shí)體可以并發(fā)訪問實(shí)體bean,事務(wù)間的協(xié)調(diào)由容器來完成。
——MessageDriven Bean消息構(gòu)件,是專門用來處理JMS(Java Message System)消息的規(guī)范(EIB2.0)。JMS是一種與廠商無關(guān)的API,用來訪問消息收發(fā)系統(tǒng),并提供了與廠商無關(guān)的訪問方法,以此來訪問消息收發(fā)服務(wù)。JMS客戶機(jī)可以用來發(fā)送消息而不必等待回應(yīng)。
JavaBeans:JavaBeans 從狹義來說,指的是 JavaBeans 規(guī)范也就是位于 java.beans 包中的一組 API。從廣義上來說,JavaBeans 指的是 API 集合,比如 Enterprise JavaBeans。 POJO:POJO(Plain Ordinary Java Object)簡(jiǎn)單的Java對(duì)象,實(shí)際就是普通JavaBeans,是為了避免和EJB混淆所創(chuàng)造的簡(jiǎn)稱。通指沒有使用Entity Beans的普通java對(duì)象,可以把POJO作為支持業(yè)務(wù)邏輯的協(xié)助類。 POJO實(shí)質(zhì)上可以理解為簡(jiǎn)單的實(shí)體類,顧名思義POJO類的作用是方便程序員使用數(shù)據(jù)庫中的數(shù)據(jù)表,對(duì)于廣大的程序員,可以很方便的將POJO類當(dāng)做對(duì)象來進(jìn)行使用,當(dāng)然也是可以方便的調(diào)用其get,set方法。POJO類也給我們?cè)趕truts框架中的配置帶來了很大的方便。
一個(gè)POJO持久化以后就是PO
直接用它傳遞、傳遞過程中就是DTO
直接用來對(duì)應(yīng)表示層就是VO DAO: 數(shù)據(jù)訪問對(duì)象是第一個(gè)面向?qū)ο?/a>的數(shù)據(jù)庫接口,是一個(gè)數(shù)據(jù)訪問接口(Data Access Object)。它可以把POJO持久化為PO,用PO組裝出來VO、DTO。 DAO模式是標(biāo)準(zhǔn)的J2EE設(shè)計(jì)模式之一.開發(fā)人員使用這個(gè)模式把底層的數(shù)據(jù)訪問操作和上層的商務(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ù)源訪問數(shù)據(jù)的邏輯,一般一個(gè)DAO類和一張表對(duì)應(yīng),每個(gè)操作要和事務(wù)關(guān)聯(lián)。
|
|