PO(persistant object) 持久對象
在 o/r 映射的時候出現(xiàn)的概念,如果沒有 o/r 映射,沒有這個概念存在了。通常對應(yīng)數(shù)據(jù)模型 ( 數(shù)據(jù)庫 ), 本身還有部分業(yè)務(wù)邏輯的處理。可以看成是與數(shù)據(jù)庫中的表相映射的 java 對象。最簡單的 PO 就是對應(yīng)數(shù)據(jù)庫中某個表中的一條記錄,多個記錄可以用 PO 的集合。 PO 中應(yīng)該不包含任何對數(shù)據(jù)庫的操作。
DO(Domain Object)領(lǐng)域?qū)ο?/p>
就是從現(xiàn)實世界中抽象出來的有形或無形的業(yè)務(wù)實體。一般和數(shù)據(jù)中的表結(jié)構(gòu)對應(yīng)。
TO(Transfer Object) ,數(shù)據(jù)傳輸對象
在應(yīng)用程序不同 tie( 關(guān)系 ) 之間傳輸?shù)膶ο?/p>
DTO(Data Transfer Object)數(shù)據(jù)傳輸對象
這個概念來源于J2EE的設(shè)計模式,原來的目的是為了EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡(luò)負(fù)載,但在這里,我泛指用于展示層與服務(wù)層之間的數(shù)據(jù)傳輸對象。
VO(view object) 值對象
視圖對象,用于展示層,它的作用是把某個指定頁面(或組件)的所有數(shù)據(jù)封裝起來。
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ù)操作。 business object: 業(yè)務(wù)對象 主要作用是把業(yè)務(wù)邏輯封裝為一個對象。這個對象可以包括一個或多個其它的對象。 比如一個簡歷,有教育經(jīng)歷、工作經(jīng)歷、社會關(guān)系等等。 我們可以把教育經(jīng)歷對應(yīng)一個 PO ,工作經(jīng)歷對應(yīng)一個 PO ,社會關(guān)系對應(yīng)一個 PO 。 建立一個對應(yīng)簡歷的 BO 對象處理簡歷,每個 BO 包含這些 PO 。 這樣處理業(yè)務(wù)邏輯時,我們就可以針對 BO 去處理。
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ù)訪問對象
是一個 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 操作.